2015-10-01 80 views
1

我收到「符號的隱式轉換成整數」用的form_for

符號的隱式轉換成整數

用下面的代碼:

<%= form_for @question, admin_questions_path do |f| %>   
    <%= f.label :question %> 
    <%= f.text_area :question %> 
<% end %> 

但是,當我改變了如下的form_for方法;表單呈現正確。

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

代碼有什麼區別?如果不正確的代碼路由到Admin::QuestionsControllercreate方法與路徑admin_questions_path爲什麼它不起作用?我對rails和命名空間很陌生,所以我可能會錯過一些完全明顯的東西。

編輯:

問題控制器是命名空間管理下。

namespace :admin do 
    resources :questions, only: [:index, :new, :create] 
end 
+0

是admin_questions一個連接表嗎?管理員是模型嗎? QuestionsController是否從Admin繼承?我對Rails也很陌生,你的設置看起來很不尋常。 – Jason

+0

@Jason見編輯。 – Michael

+1

什麼是[這裏](http://stackoverflow.com/questions/3853531/rails-routes-namespaces-and-form-for)有用嗎? – Jason

回答

3

第一個例子應該是語法糖用於編寫以下(如果我沒有記錯的話):

form_for [@question, admin_questions_path] do |f| 

當你最有可能想:

form_for @question, url: admin_questions_path do |f| 

你的第二個形式使用多態路由來自動確定正確的路由,如果您想使用相同的表單進行編輯和創建,這非常有用。 Arup提供的鏈接應該對這個主題有所幫助,關於路由的指南也是如此:http://guides.rubyonrails.org/routing.html

+0

這是一個很好的解釋。 –

+0

一百萬thnx​​s – thedanotto

相關問題