2012-06-08 155 views
15

我想爲用戶設置CRUD,僅供我的Web應用程序的管理員使用。 所以在routes.rb中:Rails:form_for名稱空間資源

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與命名空間資源?

回答

38

可以作爲一個符號添加命名空間的名字:

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

真棒!謝謝=)=) – Barbared

+1

哦,男人,我一直追着我的尾巴大約一個小時,直到我找到了答案。 – janosrusiczki

3

當您使用form_for時,它假定適當的路徑是[model_name] _path。你必須明確地告訴它的URL與

form_for @user, url: admin_user_path