扶手:命名空间的form_for资源(Rails: form_for namespaced reso

2019-06-25 08:54发布

我想为用户设置的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用名称空间的资源?

Answer 1:

您可以添加命名空间的名字作为一个符号:

 <%= form_for [:admin, @user] do |f| %>


Answer 2:

当您使用的form_for,它假定适当的路径是[模型名称] _path。 你必须明确地告诉它的URL以

form_for @user, url: admin_user_path


文章来源: Rails: form_for namespaced resource