У меня есть этот код ссылки на новую персону:Rails routes.rb не работает по желанию с именованными маршрутами
<%= link_to "New Persona", genesis_path, class: "new-persona-button" %>
Мой routes.rb файл:
Bazleyapp::Application.routes.draw do
resources :users, only: [:index, :create]
resources :personas, only: [:index, :create]
root 'static_pages#home'
get 'signup', to: 'users#new'
get '/:callsign', to: 'users#show', as: :user
get '/:callsign/settings', to: 'users#edit', as: :edit_user
patch '/:callsign', to: 'users#update', as: :update_user
delete '/:callsign/terminated', to: 'users#destroy', as: :destroy_user
get 'genesis', to: 'personas#new'
get '/:callsign', to: 'personas#show', as: :persona
get '/:callsign/settings', to: 'personas#edit', as: :edit_persona
patch '/:callsign', to: 'personas#update', as: :update_persona
delete '/:callsign/terminated', to: 'personas#destroy', as: :destroy_persona
end
Кликая на новой персоне кнопка производит эту ошибку:
Started GET "/genesis" for ::1 at 2014-12-03 00:25:38 +0000
Processing by UsersController#show as HTML
Parameters: {"callsign"=>"genesis"}
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."callsign" = $1 LIMIT 1 [["callsign", "bazzer"]]
User Load (0.3ms) SELECT "users".* FROM "users" WHERE "users"."callsign" = $1 LIMIT 1 [["callsign", "genesis"]]
Completed 500 Internal Server Error in 21ms
NoMethodError (undefined method `activated' for nil:NilClass):
app/controllers/users_controller.rb:17:in `show'
что означает, что ударять user_path (пользователи # шоу), когда он должен поражать genesis_p ATH. Но я сказал, чтобы он ударил по пути генезиса с <%= link_to "New Persona", genesis_path, class: "new-persona-button" %>
. Меня озадачило. Где ошибка?
Но почему использование 'genesis_path' не позволяет ему перейти непосредственно к персоне/новому действию? – Bazley