Rails形成搜索或创建

时间:2016-08-25 18:01:09

标签: ruby-on-rails nested-attributes

在作为关联品牌的产品型号中,我希望有一个输入字段,我可以选择现有品牌或添加新品牌。

以我的形式:

<%= f.fields_for :brand do |b| %>
<div class="form-group">
  <%= b.label :name, t('brand.one') %>
  <%= b.select :name, options_from_collection_for_select(Brand.all, :name, :name, product.brand.name), { include_blank: true}, class: '0select2-find-or-create' %>
</div>
<% end %>

并在模型中: 产品:

belongs_to :brand
accepts_nested_attributes_for :brand, limit: 1

品牌:

has_many :products

但每次我更改产品品牌时,它都会改变该品牌(按品牌ID)的名称,而不是更改ID。

同样,对于创建新品牌的部分,我将尝试将select2tags选项一起使用。还有其他建议吗?

1 个答案:

答案 0 :(得分:0)

我认为这可能是因为你的options_from_collection_for_select(Brand.all, :name, :name, product.brand.name)

我相信你想要的第二个参数是id,而不是:name

参考:http://apidock.com/rails/v4.2.1/ActionView/Helpers/FormOptionsHelper/options_from_collection_for_select