15

Web アプリケーションの管理者だけが利用できる、ユーザー向けの CRUD をセットアップしたいと考えています。したがって、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 #<#:0x007fb6645c6378>

これは次のとおりです。

名前空間付きのリソースで form_for を使用するにはどうすればよいですか?

4

2 に答える 2

38

名前空間の名前をシンボルとして追加できます。

 <%= form_for [:admin, @user] do |f| %>
于 2012-06-08T19:24:31.240 に答える
3

form_for を使用すると、適切なパスが [model_name]_path であると想定されます。URLを明示的に伝える必要があります

form_for @user, url: admin_user_path
于 2012-06-08T17:19:03.250 に答える