Почему я получаю ошибку маршрутизации? - PullRequest
0 голосов
/ 27 марта 2011

У меня есть эта ссылка:

<%= link_to "Profile", user_profile_path(current_user) %>

, и она выдает ошибку маршрутизации при попытке доступа к шоу в контроллере профилей.

Вот мои маршруты.rb:

resources :users do
  resources :profiles
end

А вот мой метод show в контроллере профилей:

def show
  @profile = @user.profiles.find(params[:id])
end

У меня также есть этот обратный вызов в моей модели User:

before_create :build_profile

Чтоя делаю не так?

1 Ответ

1 голос
/ 27 марта 2011

Вам не хватает идентификатора профиля.

Примерно так:

<%= link_to "Profile", user_profile_path(:user_id => current_user.id, :id => profile.id) %>

редактировать

Это довольно грязно, и вы, вероятно, не должны вначале вкладывать эти объекты, но это, вероятно, поможет вам преодолеть вашу текущую проблему.

<%= link_to("Profile", user_profile_path(:user_id => current_user.id, :id => current_user.profile.id)) unless current_user.profile.blank? %>

Вы должны серьезно рассмотреть возможность их вложения в свои маршруты и просто предоставить доступ к профилю на основе его собственного идентификатора, а не идентификатора пользователя.

resources :users
resources :profiles

<%= link_to("Profile", profile_path(current_user.profile)) unless current_user.profile.blank? %>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...