我在路线中有以下声明:
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错误地映射到用户#show。我在期待:
users GET /users/:id/(.:format) users#show
可能导致此问题的原因以及我如何解决此问题?
答案 0 :(得分:1)
您应该使用resources
代替resource
。 e.g。
resources 'users'
资源和资源之间的区别是:
资源用于单个模型的操作。使用resource model
时,没有“索引”操作。
请参阅:http://guides.rubyonrails.org/routing.html
更进一步,我注意到你的路线有点奇怪。如果你只是想用GET访问方法添加名为'dashboard'的动作,只需声明如下:
resources 'users' do
get :dashboard
end
答案 1 :(得分:0)
而不是这样做
resource :users, :only => [:index, :show, :update, :destroy] do
get "users/dashboard"
end
这样做
namespace :dashboard do
resource :users, :only=>[:index,:show,:udpate,:destroy]
end
我认为这对你有用。