Ошибка маршрутизации при существовании маршрута

#ruby-on-rails #ruby-on-rails-3 #routing #routes

#ruby-on-rails #ruby-on-rails-3 #маршруты

Вопрос:

Я получаю эту ошибку маршрутизации при загрузке страницы:

 ActionController::RoutingError in Videos#index

Showing /rubyprograms/dreamstill/app/views/layouts/application.html.erb where line #26 raised:

No route matches {:action=>"show", :controller=>"profiles"}
  

Это относится к этой строке:

 <%= link_to "Profile", profile_path(current_user.profile), :class => 'normal' %>
  

Однако маршрут существует, потому что у меня есть это в моих маршрутах:

 resources :profiles do
    get 'activity', :on => :member
    get 'shown_songs', :on => :member
end
  

и у меня есть это действие в моем контроллере профилей:

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

Что происходит и как я могу это исправить?

Ответ №1:

Если вы передаете объект nil своему помощнику URL, вы увидите эту ошибку. Убедитесь, что current_user.profile не равен нулю в этой строке:

 profile_path(current_user.profile)