2017-05-08 48 views
0

我有一個下拉菜單:填充兩個數據庫中的值選擇

<%= f.collection_select :price, Print.all, :printprice, :sizetotal, {prompt: "Pick A Size & Medium"} %> 

目前,它填充與價值:printprice:price數據庫列,並顯示在實際的下拉選擇的價值:sizetotal

我希望能夠填充兩個數據庫列,其中之一是:price列已在工作,但我也想填充另一列名爲:size的值爲:printsize。我想使用相同的下拉選擇菜單執行此操作。

喜歡的東西:

<%= f.collection_select :price, :size, Print.all, :printprice, :printsize, :sizetotal, {prompt: "Pick A Size & Medium"} %> 

但顯然上述不起作用

這可能嗎?

+0

嗯,你可以只'collection_select:size'代替並用它來填充價年代以前控制器將它納入模型? –

+0

這將闡明你有一個簡單的代碼提取你的Print類,也可能是你想要的選擇的示例HTML代碼。在任何情況下,我都會建議使用打印的ID作爲select中的值,因此在控制器端可以找到相應的打印並提取所需的任何變量。 或者,您可以使用一個函數,它將'price'和'size'兩者串入一個值中,並在後端將其反序列化。 –

回答

0

按照我的評論,這裏是ID的替代方案。基本上你想再次在後端期間#create#update行動在前端發送打印的唯一的ID,並發現整個對象

print_for_size_and_price = Print.find(params[:print_id_for_size_and_price]) 

所以我想用這樣的

select_tag(
    :print_id_for_size_and_price, 
    options_from_collection_for_select(Print.all, :id, :sizetotal) 
) 

而在後端我會做的地方

my_instance.price = print_for_size_and_price.printprice 
my_instance.size = print_for_size_and_price.sizetotal 
相關問題