¿Sigue vivo este grupo?
Sería estupendo, por que he retomado Ror y la verdad es que a penas conozco a nadie que me pueda echar una mano.
intento implementar una nueva funcionalidad en un
proyecto que tengo desde hace año estancado, se trata de un simple formulario para creación de "comentarios". Soy bastante principante en esto, por eso que necesito ayuda. Gracias de antemano, les dejo lo que tengo en los diferentes archivos:
En el archivo routes.rb
resources :comments
resources :designs do #he añadido esto por mi cuenta....
resources :comments
end
En el formulario de la vista del post (timeline/show.html.erb):
<%= semantic_form_for ([@design, @design.comments.build]) do
|formulario| %> #Esto lo he sacado del mismo ejemplo de internet.... no
acabo de entender.....
<%= formulario.text_field :title %>
<%= formulario.text_field :body %>
<%= formulario.submit %>
<% end %>
Archivo comments_controller.rb:
class CommentsController < ApplicationController
def create
@design = Design.find(params[:design_id])
@user = current_user.id
@comment = @design.comments.create(params[:comment]) #Haciendo
esta llega el design_id, pero no el user_id.
@comment = current_user.comments.create(params[:comment]) # Con
esta línea, llega el user_id, pero no llega el design_id
redirect_to timeline_path(@design)
end
end
pd. Tampoco conozco la diferencia entre el método
@design.comments.create() y el método @design.comments.new() pero
alguien recomienda el último, lo probé y parece que no llega nada al a bbdd.
Cualquier tipo de ayuda u orientación lo agradezco,
Muchas gracias,
Carlos
def create
@design = Design.find(params[:design_id])
@comment = @design.comments.new(params[:comment]) @comment.user_id = current_user.id # si tienes la relación entre comment y user bien definida puedes escribir @comment.user = current_user
if @comment.save
redirect_to timeline_path(@design)
else
# aqui defines que sucede si el guardado falla, en este caso he supuesto que la vista desde donde envías el formulario es 'new' siguiendo el estandar CRUD.
render 'new'
end end
--
Has recibido este mensaje porque estás suscrito al grupo "Tenerife.rb" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a tenerife-rb...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.