Estoy tratando de crear un registro dentro de una tabla de unión desde la acción de un botón. Tendría un modelo de eventos y me gustaría rastrear eventos seleccionados de cada usuario.Rieles - Agregar registro para unir la tabla desde el controlador
Utilicé la relación HABTM ya que realmente no necesito campos adicionales.
User.rb:
has_to_and_belongs_to_many :events
Event.rb:
has_to_and_belongs_to_many :users
Events_Users Migración:
[user_id, event_id, id=>false]
Me estoy atascado en la creación real del registro. Alguien me ayudó antes con añadir el registro en la consola de:
u = User.find(1)
u.events << Event.find(1)
Ahora me gustaría realizar la acción como resultado de hacer clic en un enlace ... ¿Es esto en la dirección correcta?
def add
@user = User.find(session[:user_id])
@event = Event.find(params[:id])
if @user.events.save(params[:user][:event])
flash[:notice] = 'Event was saved.'
end
end
¿Debo añadir un @user.events.new
algún lugar y si es así ¿por dónde poner los parametros de qué usuario y qué evento?
Qué quiere decir @ user.events << @ event.name ??? – ChrisWesAllen
No. Ese código no tendría sentido si entiendo la descripción del problema correctamente. – Gdeglin
Gracias por las sugerencias, cambié el "<% = link_to image_tag (" grid_heart.gif ",: border => 0),: controller => 'event',: action => 'add_event'%>" to "< % = button_to "Agregar",: controller => 'event',: action => "add"%> "pero sigo teniendo un error de que haya un" EventController constante no inicializado "¿Puse el método en el controlador equivocado? – ChrisWesAllen