2012-04-23 21 views
0

我正在使用simple_form gem。我有一個相當直接的場景。我有一個範圍的路線,我試圖讓一種形式:simple_form_for無法識別f.input

= simple_form_for(@scope, @post) do |f| 
    = f.input :comment 

簡化路由文件:

scope ':scope' do 
    resources :posts 
end 

但是我得到的錯誤:

undefined method `input' for #<ActionView::Helpers::FormBuilder:0x7f1b1eef1cb8> 

我使用rails 3.0.12和simple_form 1.4.2

任何意見,我要去哪裏錯了?圍繞它這個

回答

0

的一種方式(儘管不理想是使用simple_fields的。我會用這根棍子,直到有一個更好的解決方案。

= form_for(@scope, @post) do |f| 
    =f.simple_fields_for :posts do |ff| 
    =ff.input :comment 
0

你有沒有重新啓動服務器安裝寶石後?

+0

肯定。如果我沒有,那麼錯誤將在simple_form_for附近,而不是輸入 – Yule 2012-04-23 11:50:28

3

出現這種情況的,因爲simple_form_for(和for_form也因爲simple_form_for只有一個方法委託給它)接收的第二個參數的選項哈希值。所以你@post被解釋爲選項,防止對SimpleForm改變表單生成器。

與範圍的資源一起工作的正確方法是使用數組是這樣的:

= simple_form_for([@scope, @post]) do |f| 
    = f.input :comment