2017-04-04 41 views
0

我有一個屬於品牌產品型號Rails的怪異行爲與構建關聯

Model product 
belongs_to :brand 

model Brand 
has_one :product 

產品創建我放在創作

<%= p.collection_select(:brand_id, Brand.all, :id, :name, {},{ :multiple => false}) %> 

一個選擇的品牌,但如果用戶想加他的品牌我添加了一個文本字段

<%= p.fields_for :brand_attributes do |b| %> 

    <%=b.text_field :name, :label=>"Name"%> 
<% end %> 

現在,如果用戶選擇品牌選擇沒有顯示在公關oduct顯示頁面 只是如果用戶添加品牌名稱

那麼,是否有可能保留一個選擇品牌,並有可能將品牌名稱添加到?

回答

1

這是可能的,但您需要在控制器方法中添加一些額外的邏輯以適應這兩種情況。你已經發布了最少的代碼,所以如果你展示了表單發佈到的控制器方法,它會有所幫助。

你也確定關係應該是has_one?從您的表單以及您展示所有品牌的事實中,允許用戶選擇一個可能已被選定用於其他產品的品牌,這可以解釋品牌未出現在展示頁面上的原因。你可能想要一個has_many的關係。

+0

margo,謝謝!那麼,控制器是通常的 – nakapaka1