0

我在路线中有以下声明:

  resource :users, :only => [:index, :show, :update, :destroy] do
    get "users/dashboard"
  end

但是,当我做 rake 路线时,我得到了:

dashboard_users GET    /users/users/dashboard(.:format)       users/users#dashboard
               users GET    /users(.:format)                       users#show
                     PUT    /users(.:format)                       users#update
                     DELETE /users(.:format)                       users#destroy

请注意,users_path 被错误地映射到 users#show。我期待:

users GET    /users/:id/(.:format)                       users#show

什么可能导致此问题以及如何解决?

4

2 回答 2

1

你应该使用resources而不是resource. 例如

resources 'users' 

资源和资源的区别是:

资源用于单个模型的操作。使用时resource model,没有“索引”操作。

见: http: //guides.rubyonrails.org/routing.html

此外,我注意到你的路线有点奇怪。如果您只想使用 GET 访问方法添加一个名为“仪表板”的操作,只需像这样声明:

resources 'users' do 
  get :dashboard
end
于 2013-05-28T05:58:55.087 回答
0

而不是这样做

resource :users, :only => [:index, :show, :update, :destroy] do
  get "users/dashboard"
end

做这个

namespace :dashboard do 
    resource :users, :only=>[:index,:show,:udpate,:destroy]
end

我认为这对你有用。

于 2013-05-28T05:52:52.317 回答