Путь к контроллеру для вложенного ресурса - неопределенный метод `<controller> _path ' - PullRequest
30 голосов
/ 24 декабря 2010

У меня проблемы с отображением формы в / users / 2 / friends / new.Я получаю

undefined method `friends_path' for #<#<Class:0x21f0c14>:0x21ef364>

Вот начало формы

<% form_for(@friend) do |f| %> 

И контроллер друзей

def new
     @user = User.find(params[:user_id])
     @friend = @user.friends.build
end

Это маршрут

resources :users do
       resources :friends
end

И соответствующий путь от "граблей"

users/:user_id/friends/new(.:format)      {:controller=>"friends", :action=>"new"}

Любая помощь или понимание очень ценится.Это мое первое приложение рельсы 3.

1 Ответ

47 голосов
/ 24 декабря 2010

Попробуйте:

user_friends_path(@user)

Это потому, что это вложенный ресурс: http://guides.rubyonrails.org/routing.html#creating-paths-and-urls-from-objects

Обновление: Что касается формы, вы можете сделать:

<%= form_for [@user, @friend] do |f| %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...