【问题标题】:Rails: form_for namespaced resourceRails:form_for 命名空间资源
【发布时间】:2012-06-12 18:26:35
【问题描述】:

我想为用户设置 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 第一行中不断收到此错误:
undefined method `user_path' for #

这是:

如何将 form_for 与命名空间资源一起使用?

【问题讨论】:

    标签: ruby-on-rails namespaces routes crud form-for


    【解决方案1】:

    当您使用 form_for 时,它假定适当的路径是 [model_name]_path。你必须明确告诉它 url 与

    form_for @user, url: admin_user_path
    

    【讨论】:

      【解决方案2】:

      您可以将命名空间的名称添加为符号:

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

      【讨论】:

      • 天哪,我已经追了大约一个小时才找到这个答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-12
      • 2011-07-06
      • 1970-01-01
      相关资源
      最近更新 更多