Rails 3 - вложенные маршруты "NoMethodError", несмотря на то, что они перечислены в маршрутах рейка - PullRequest
1 голос
/ 20 мая 2011

Хорошо, ребята, поэтому у меня есть такой маршрут:

resources :apps do
    resources :forms
end

В моем индексе формы у меня есть этот блок:

<% @forms.each do |form| %>
  <tr>
    <td><%= form.app_id %></td>
    <td><%= form.title %></td>
    <td><%= link_to 'Show', app_form(@app,form) %></td>
    <td><%= link_to 'Destroy', form, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

Страница выдает NoMethodError в строке app_form; Тем не менее, я думаю, что я передаю в приложение и форма правильно (я также пытался передать в @ app.id). Вызов граблей по маршрутам ... маршрут даже отображается:

app_form GET    /apps/:app_id/forms/:id(.:format)      {:controller=>"forms", :action=>"show"}

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

5 голосов
/ 20 мая 2011

Вместо этого попробуйте app_form_path(@app, form) (необходимо добавить _path к названию маршрута).

0 голосов
/ 20 мая 2011

Не только вложенные маршруты. Для каждого используемого маршрута необходимо добавить _path или _url с именем маршрута.
Итак, здесь можно попробовать app_form_path (@ app, форма) или app_form_url (@ app, форма)

...