Gracias por la respuesta Damian, pero lo he probado todo y sigo haciendo
algo mal.
He visto otro post relacionado, pero tampoco encuentro mi fallo.
http://www.ruby-forum.com/topic/85400#156239
He hecho un controlador de “Notas” para cada viaje. Creo que el problema
está cuándo quiero grabar el viaje_id una vez grabo el texto de la nota.
No paso bien los dos parámetros. A demás, he puesto el formulario de
texto en la misma página de mostrar, como si de un to-do se tratase,
cosa que me complica aún más encontrar el error.
Los códigos que he utilizado son. El “show” del viaje:
<% for column in Viaje.content_columns %>
<%= column.human_name %>: <%=h @viaje.send(column.name) %>
<% end %>
<%= link_to ‘Edit’, :action => ‘edit’, :id => @viaje %> |
<%= link_to ‘Back’, :action => ‘list’ %>
<%= link_to ‘Notas’, :controller => ‘notas’, :action => ‘add_item’,
:id => @viaje %>
y el controlador de las Notas:
class NotasController < ApplicationController
scaffold :nota
def index
@items = Nota.find_all
end
def add_item
item = Nota.new(:viaje_id => params[:id])
item.attributes = @params[“new_item”]
if item.save
redirect_to(:action => "index")
else
render_text "Couldn't add new item"
end
end
def destroy
item = Nota.find(@params[“id”])
begin
item.destroy
redirect_to(:action => “index”)
rescue ActiveRecord::ActiveRecordError
render_text “Couldn’t destroy item”
end
end
end
Como para ver las notas he definido index, entonces:
Notas
<% @items.each do |@item| %>
<%= @item.texto %>
<%= link_to("Edit", :action => "edit", :id => @item.id) %>
<%= link_to("Destroy",
{ :action => "destroy", :id => @item.id },
:confirm => "Are you sure you want to delete this entry:
#{@item.texto}") %>
<% end %>
New item:
<%= text_area("new_item", "texto") %>