我几乎可以肯定以前有人问过这个问题,但我似乎无法找到正确的单词系列来找到它。
我有一个资源 Games,它包含所有正常的资源路径。创建、编辑等
我在 GamesController 中创建了一个名为 json 的新操作,我希望能够在 mydomain.com/games/json 访问该操作,但路由不断选择“json”作为 ID 并将其路由到“显示”操作。
大概这是因为默认路由:
match ':controller(/:action(/:id))'
我已经尝试了很多东西,但无论我做什么,它都会一直路由到“显示”。我一直在尝试使用本指南来解决这个问题,但是对于那些刚接触 Rails 的人来说,它需要大量的学习和应用。
我想说的是,对于任何控制器 /json 都会带您进入 json 操作(而不是使用 id 'json' 显示),但我愿意为每个控制器单独指定它。
任何帮助是极大的赞赏。(即使这只是将我指向已经回答的问题。)在所有情况下,我一直将我试图创建的路由放在默认路由之上。
我的路线:
root :to => 'home#index'
resources :events, :players, :sets, :matches, :characters, :videos, :games, :event_instances, :game_instances
resource :user_session
resource :account, :controller => "users"
resources :users
match '/login', :to => 'user_sessions#new', :as => 'login'
match '/logout', :to => 'user_sessions#destroy', :as => 'logout'
match '/register', :to => 'users#create', :as => 'register'
match '/games/json', :to => 'games#json', :as => 'gameList'
match ':controller(/:action(/:id))'