2013-02-10 74 views
0

我有添加新工作的窗體。在我的表格中,我有一個選擇下拉列表。我需要將新工作與客戶聯繫起來。以下工作很好。Rails的Form_For選擇與雙重目的

<%= f.collection_select :customer_id, Customer.all, :id, :business_name %> 

但是,如果我想也可以將customer_id發送到新窗體呢?我可以讓表單的選擇下拉菜單顯示所有可能的客戶,如上所述,但是如果傳入了customer_id,是否會自動選擇我傳入表單的customer_id?

URL = ...職位/新

OR

URL = ...職位/新?CUSTOMER_ID = 5

我道歉,如果我沒有解釋這不夠好。 在此先感謝。 - jc

回答

0

我想你可以通過在你的控制器中創建的工作中填充customer_id字段來實現這一點,如果customer_id存在於請求參數中的話。這應該使該特定客戶成爲表單中最初選擇的選項。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_select

例如就像是。

if params[:customer_id].present? 
    job.customer_id = params[:customer_id] 
end 
+0

謝謝你的提示。這在我終於在這個網站上找到類似的問題之後爲我工作。對不起,沒有看到這更快。 – 2013-02-10 17:03:47

+0

沒問題,我的榮幸。 – ChrisC 2013-02-10 17:04:51

0

如果您在聲明你的控制器動作實例變量@customer那麼你可以使用選擇的選項爲:

<%= f.collection_select :customer_id, Customer.all, :id, :business_name, {:selected => @customer.id} %> 
+0

<%= f.collection_select:customer_id,Customer.all,:id,:business_name,{:selected =>!params [:customer_id] .nil? ? params [:customer_id]:''}%> – 2013-02-10 17:05:08