Rails-更改成员路由名称而不附加父名称

时间:2012-08-18 03:27:29

标签: ruby-on-rails routes

我定义了以下路线:

  resources :scenes do
    member do
      match 'files' => 'scenes#files', via: :get, as: 'scene_files'
    end
  end

我希望能够将嵌套路由称为scene_files_path,但Rails坚持在路径中添加额外的scene,因此我最终得到的是scene_files_scene_path 。我怎样才能得到我想要的指定路线?

1 个答案:

答案 0 :(得分:2)

我开始使用

简化您的成员区块
resources :scenes do
  get :files, :as => :scene_files, :on => :member
end
然后我偶然发现了

resources :scenes do
  get :files
end

产生:

> rake routes
  scene_files GET       /scenes/:scene_id/files(.:format)     scenes#files
       scenes GET       /scenes(.:format)                     scenes#index
             POST       /scenes(.:format)                     scenes#create
    new_scene GET       /scenes/new(.:format)                 scenes#new
   edit_scene GET       /scenes/:id/edit(.:format)            scenes#edit
        scene GET       /scenes/:id(.:format)                 scenes#show
              PUT       /scenes/:id(.:format)                 scenes#update
           DELETE       /scenes/:id(.:format)                 scenes#destroy

只有一个问题,param键是:scene_id而不是id