Hola gente,
Es la primera vez que me pongo en serio a implementar una
aplicacióndel modo más RESTfull posible y hay alguna cosa con la que no logro
encontrarme cómodo.
Por ejemplo: los recursos anidados. Todavía no logro ver la ventaja de
definir los recursos en el routes como anidados o definirlos como
recursos normales.
Por ejemplo, tenemos Comment que es una comentario de una charla:
Paper. Entiendo que Comment es un recurso anidado de Paper y lo defino
como tal en el routes:
map.resources :papers do |papers|
papers.resources :comments
end
Ahora en el formulario de creación de un comentario:
<% form_for [@paper, @comment] do |f| -%>
<%= f.text_area :text %>
<%= f.submit “Submit”, :disable_with => ‘Submiting…’ %>
<% end -%>
Aquí ya empiezo a fruncir el ceño… vaya modo raro de definir el
action de un formulario. Aunque vale puede quedar más bonito que meter
un campo hidden con el id del paper… vale
Pero llegamos al controlador y ya no puedo hacer esto:
@comment = Comment.new( params[:coment] )
Por que el parámetro ‘paper_id’ ya no está dentro del array
params[:comment] osea que tengo que hacer esto:
@comment =
Comment.new(
:text => params[:comment][:text],
:paper => params[:paper_id]
)
¿Es así como se debe hacer? ¿Hay algo que me pierdo?
Cualquier comentario es bienvenido
f.