? Estoy tratando de crear una funcionalidad de "etiqueta" que permita al usuario "etiquetar" elementos en los que están interesados. Aquí está mi modeloRails 3 - ¿Cómo se crea un nuevo registro desde link_to
class tag
belongs_to :user
belongs_to :item
end
La tabla de base de datos correspondiente tiene las necesarias :user_id
y :item_id
campos.
En la lista de :items
quiero un enlace al lado de cada :item
que permita al usuario etiquetar el :item
. Como conozco el :user_id
y el :item_id
, quiero crear un nuevo registro :tag
, establecer los campos de id y guardar el registro, todo sin la intervención del usuario. He intentado lo siguiente llamada a link_to
, pero ningún registro se guarda en la base de datos:
<%= link_to 'Tag it!', {:controller => "tracks",
:method => :post,
:action => "create"},
:user_id => current_user.id,
:item_id => item.id %>
(Este código está dentro de un:. @item.each do |item|
declaración, por lo que es válido item.id)
crea este link_to
llamada esta URL:
http://localhost:3000/tags?method=post&tag_id=7&user_id=1
que no crea un registro en la base de datos Tag
. Aquí está mi acción :create
en el tags_controller
def create
@tag = Tag.new
@tag.user_id = params[:user_id]
@tag.tag_id = params[:tag_id]
@tag.save
end
¿Cómo puedo obtener link_to para crear y guardar un nuevo registro de la etiqueta?
Gracias! Funciona muy bien con tu solución. Mostrar la firma link_to en tu respuesta realmente me ayudó a entender finalmente qué estaba pasando. Muy apreciado. –
Solo un comentario rápido. En el valor hash url_options, el valor de la clave del controlador debe ser "elementos", no "elemento". Le daría un error de enrutamiento ActionController al tratar de mostrar el enlace. – icantbecool
@dexter, ¿qué sucede si el enlace está fuera de la aplicación, como en un correo electrónico, por ejemplo? Mi caso de uso es para confirmaciones de asistencia. Quiero crear un nuevo RSVP directamente desde el enlace de correo electrónico, pero quiero permanecer RESTful. – Mohamad