2012-10-26 46 views
0

我希望能夠選擇空白對象並將其張貼,以便我可以清除導軌關係。默認情況下,當您在:include_blank條目上選擇POST時,不會發布任何內容,因此它不會刪除舊的關係。所以我試圖添加一個0 id空白項到數組中。使用以下命令刪除導軌關係:include_blank

原文:

<%= select_f f,:config_template_id, @operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id), :id, :name, {:include_blank => true}, { :label => f.object.template_kind } %> 

礦:

<%= select_f f,:config_template_id, @operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id).collect { |c| [c.name, c.id]}.insert(0, ['', 0]) %> 

我得到一個 「錯誤的參數數目(3 5)」 的錯誤,但並不能搞清楚什麼我失蹤。任何指針? (我也無法在網絡上的任何地方找到select_f,我認爲谷歌忽略了_,所以搜索是開放式結束的方式...對於rails 3,我應該使用別的東西嗎?)

+0

在您的選擇標籤中使用':id'和':name'參數。 'select_f'看起來像一個自定義助手。你可能因爲某個插件而擁有它。 –

回答

1

您已經省略了3rd ,你傳入你的原始代碼塊的第四,第五和第六個參數。無論select_f是什麼,它至少需要5個參數。在原來您通過以下對select_f(每行一個參數爲清楚起見)

f, 
:config_template_id, 
@operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id), 
:id, 
:name, 
{:include_blank => true}, 
{ :label => f.object.template_kind } 

在新的(碎)叫你只是路過

f, 
:config_template_id, 
@operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id).collect { |c| [c.name, c.id]}.insert(0, ['', 0]) 

使用你的第一個方法調用,只需替換第三個參數即可。

f, 
:config_template_id, 
@operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id).collect { |c| [c.name, c.id]}.insert(0, ['', 0]) 
:id, 
:name, 
{:include_blank => true}, 
{ :label => f.object.template_kind } 

最後,如果你不想在:include_blank => true獲得通過,但仍希望做的標籤,只是通過nil{}到5論點

f, 
:config_template_id, 
@operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id).collect { |c| [c.name, c.id]}.insert(0, ['', 0]) 
:id, 
:name, 
nil, 
{ :label => f.object.template_kind } 

而且完全在一行:

<%= select_f f, :config_template_id, @operatingsystem.config_templates.where(:template_kind_id => f.object.template_kind_id).collect { |c| [c.name, c.id]}.insert(0, ['', 0]), :id, :name, nil, { :label => f.object.template_kind } %> 

我不能保證這個工作,因爲我不知道在哪裏爲select_f該API,或者如果你創建了它自己。但是,這應該讓你朝正確的方向發展。

+0

+1這麼好的解釋! –