我想为用户设置CRUD,仅适用于我的Web应用程序的管理员。 所以在routes.rb中:
namespace :admin do
resources :user
end
这意味着:
admin_user_index GET /admin/user(.:format) admin/user#index
POST /admin/user(.:format) admin/user#create
new_admin_user GET /admin/user/new(.:format) admin/user#new
edit_admin_user GET /admin/user/:id/edit(.:format) admin/user#edit
admin_user GET /admin/user/:id(.:format) admin/user#show
PUT /admin/user/:id(.:format) admin/user#update
DELETE /admin/user/:id(.:format) admin/user#destroy
显示,索引工作正常,但编辑和新编辑没有。我一直在_form第一行得到这个错误:
未定义的方法`user_path'用于#<#:0x007fb6645c6378>
这是:
如何将form_for与命名空间资源一起使用?
答案 0 :(得分:38)
您可以将名称空间的名称添加为符号:
<%= form_for [:admin, @user] do |f| %>
答案 1 :(得分:3)
使用form_for时,它假定相应的路径是[model_name] _path。你必须用
明确地告诉它网址form_for @user, url: admin_user_path