我已經使用rails scaffold自動生成表單和視圖。 但是現在我必須在root namspace中使用名稱空間控制器和模型。如何在rails中處理form_for namspaced控制器
因此,我手動生成控制器沒有腳手架,我在使用窗體時遇到了麻煩。
我想,下面的代碼應該產生用於命名空間控制器
<%= form_for @menu do |f| %>
<div class="field">
<%= f.label :label %><br />
<%= f.text_field :label %>
</div>
<div class="field">
<%= f.label :order %><br />
<%= f.text_field :order %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
形式,但它不。它說
undefined method `model_name' for NilClass:Class
似乎很容易做到腳手架發電機軌,但如果一個人想這樣做手工,軌道輔助方法,打開他們負。
...我已經尋找的form_for文檔和改變了代碼
<%= form_for @menu, :url => admin_menu_path do |f| %>
那麼它就會顯示不同的錯誤
No route matches {:action=>"show", :controller=>"admin/menus"}
我耙路線給出了下面的輸出
admin_root /admin(.:format) admin/menus#index
admin_menus GET /admin/menus(.:format) admin/menus#index
POST /admin/menus(.:format) admin/menus#create
new_admin_menu GET /admin/menus/new(.:format) admin/menus#new
edit_admin_menu GET /admin/menus/:id/edit(.:format) admin/menus#edit
admin_menu GET /admin/menus/:id(.:format) admin/menus#show
PUT /admin/menus/:id(.:format) admin/menus#update
DELETE /admin/menus/:id(.:format) admin/menus#destroy
糾正我,如果我錯了,但我認爲紅寶石無法找到模型菜單管理命名空間,whi ch是顯而易見的。所以,我嘗試:: Menu.new,我認爲它會查找上部命名空間,但沒有結果!
是它的工作,但我不明白的form_for是如何工作的呢,我havnt添加菜單。新的索引方法,因爲它會創建一個新的模型,如果我想在索引中放置一個表單,我該怎麼辦? – pahnin
它只創建一個'Menu'的新實例,而不是數據庫中的一個記錄,這是最簡單和最推薦的方法來創建一個數據庫資源的表單,在這裏你可以得到一些關於'form_for'如何工作的信息:http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#method-i-form_for –
好的,明白了,臨終關懷NKS – pahnin