J'ai échafaudés élément choses:Qu'en est-il de la mauvaise fonction appel en vue générée via échafaudage?
script/generate scaffold wip/thing name:string
et a obtenu un certain appel de fonction non valide dans les vues, comme:
<td><%= link_to 'Edit', edit_thing_path(thing) %></td>
qui soulèvent cette erreur:
ActionView::TemplateError (undefined method `edit_thing_path' for #<ActionView::Base:0xb5c00944>) on line #11 of app/views/wip/things/index.html.erb:
8: <tr>
9: <td><%=h thing.name %></td>
10: <td><%= link_to 'Show', thing %></td>
11: <td><%= link_to 'Edit', edit_thing_path(thing) %></td>
12: <td><%= link_to 'Destroy', thing, :confirm => 'Are you sure?', :method => :delete %></td>
13: </tr>
14: <% end %>
Quelle est avec cette fonction ? Où est-ce? Est-ce une sorte de choses automagique ou dois-je mettre en œuvre -
J'ai ressource définie dans les routes avec espace de noms (si oui, où doit-il aller?):
map.namespace :wip do |wip|
wip.resources :things
end
routes râteau me donne ceci:
wip_things GET /wip/things(.:format) {:action=>"index", :controller=>"wip/things"}
POST /wip/things(.:format) {:action=>"create", :controller=>"wip/things"}
new_wip_thing GET /wip/things/new(.:format) {:action=>"new", :controller=>"wip/things"}
edit_wip_thing GET /wip/things/:id/edit(.:format) {:action=>"edit", :controller=>"wip/things"}
wip_thing GET /wip/things/:id(.:format)
Je suppose que ces noms (wip_thing, new_wip_thing) sont les noms corrects, mais il me donne encore cette erreur
Merci.
Je cette ressource mais définie dans l'espace de noms: map.namespace: wip do | wip | wip.resources: choses fin est-ce quelque chose de mal avec ça? – meta
Oui c'est. L'échafaudage définit l'itinéraire sans espace de noms. Vous devez définir l'URL avec cet espace de noms. Voir les routes de rake pour voir l'itinéraire réel – shingara
Ok, j'ai couru des itinéraires de rake, et ai obtenu " nouveau_wip_thing GET /wip/things/new(.:format) {: action =>" nouveau ",: controller =>" wip/things "} " J'ai donc essayé d'utiliser "new_wip_thing" à mon avis, mais cela génère toujours une erreur. Des idées que fais-je tort? – meta