Creando una lista corta en Rails

Tengo una pregunta bastante genérica sobre cómo crear una lista corta en Rails.

Lo que tengo actualmente es un modelo de usuario y trabajo donde los usuarios pueden registrarse y crear/editar trabajos, etc. Lo que me gustaría hacer es permitir que los usuarios agreguen trabajos que les interesen a una "lista corta" para que puedan volver fácilmente a ellos: entonces me gustaría agregar estos trabajos preseleccionados a mi panel de usuario.

Me preguntaba cuál sería la mejor manera de implementar una configuración como esta. ¿Sería mejor crear un controlador separado para las listas cortas y convertirlo en un recurso anidado de usuarios y luego vincular mi tabla de trabajos con mi tabla de lista corta en mi base de datos?

¿Sería genial obtener algunas ideas de alguien que haya implementado algo como esto antes?

¡Gracias! :)

preguntado el 12 de junio de 12 a las 08:06

1 Respuestas

Si estoy entendiendo correctamente, parece que quieres un has_and_belongs_to_many relación aquí en lo que respecta al modelado:

Usuario:

has_and_belongs_to_many :shortlisted_jobs, :class_name => 'Job'

Trabajo:

has_and_belongs_to_many :shortlisting_users, :class_name => 'User'

En cuanto a la configuración del controlador, pondría el trabajo CRUD en un JobsController, que no tiene espacio de nombres, y agrega las acciones necesarias para manipular la lista de favoritos de un usuario en particular en el UsersController.

La única suposición que hago es que yo, como usuario de su aplicación, puedo agregar un trabajo que usted creó a mi lista de preseleccionados. Si este es el caso, lo configuraría como acabo de describir.

Respondido el 12 de junio de 12 a las 08:06

Esto es excelente, muchas gracias por responder. ¿La única parte en la que estoy un poco confundido es agregar el CRUD que no tiene un espacio de nombres? Sin tener mi código aquí para revisar, creo que actualmente tendré class JobsController < ApplicationController - ¿Cómo funcionaría la parte sin espacio de nombres con esto? Gracias de nuevo :) - Tom Pinchén

es class JobsController < ApplicationController significa que no tiene un espacio de nombres :) Si tuviera un espacio de nombres, sería algo más como class Users::JobsController < ApplicationController, el archivo estaría en app/controllers/users/jobs_controller, y la resources :jobs declaración de ruta estaría dentro de la resources :users bloquear en sus rutas. Creo que eres bueno para ir aquí. - x1a4

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.