Rails向资源添加新页面(带参数)

时间:2013-12-26 05:14:47

标签: ruby-on-rails routes

我正在尝试向我正在创建的rails资源添加一些新页面。

我在路线文件中的操作如下:

resources :users, :only => [:index, :show] do
    collection do
        get :show_subpage1
    end
end

当我查看我的路线时,show_subpage1显示,但不是我想要的格式。路线中显示的是:

show_subpage1_users GET    /users/show_subpage1(.:format)

当我想要的路线是:

show_subpage1_users GET    /users/:id/show_subpage1(.:format)

(带有身份证)。

我将如何在rails中进行此操作?

2 个答案:

答案 0 :(得分:2)

获得:

  

show_subpage1_users GET / users /:id / show_subpage1(。:format)

不要将:show_subpage1定义为collection路线:

resources :users, :only => [:index, :show] do
  get :show_subpage1
end

或者您可以将其定义为member路线,如下所示:

resources :users, :only => [:index, :show] do
  member do 
    get :show_subpage1
  end
end

此外,如果您还要拥有成员路线:only => [:index, :show],我不确定您为何定义:show_subpage1。我假设您确实要向:show_subpage1数组添加only,即resources :users, :only => [:index, :show, :show_subpage1] do

请阅读“Adding More RESTful Actions

答案 1 :(得分:1)

资源membercollection

有两种方式
resources :users, :only => [ :index, :show ] do
   # /users/:id/profile
   get 'profile', :on => :member
   # /users/profile
   get 'profile', :on => :collection
end

希望这会有所帮助