我有两个模型:Station & Drinks
车站 has_many :drinks and Drinks belongs_to :stations
我正在尝试制作我的表格,以便当您创建一个站点时,您可以选择 4 种也属于该站点的饮料。
原始形式:
<%= semantic_form_for [:admin, @station] do |f| %>
<fieldset class="inputs">
<ol>
<%=f.input :name %>
<%=f.input :number, :as => :number %>
</ol>
</fieldset>
<%= f.buttons :commit %>
我一直在尝试弄清楚如何在此表单中创建 4 个(选择)输入字段,以便您可以为当前站选择饮料 #1、#2、#3、#4。有任何想法吗?
我目前正在尝试accepts_nested_attributes_for :drinks, :allow_destroy => true.
饮料belongs_to :station
id | name | station_id |
车站has_many :drinks
id | name |
.
更新 如下 tihm 所述,您可以添加 4 种饮料并使用以下命令编辑它们的值:
<% f.fields_for :drinks do |drink_form| %>
<%# Put your inputs here...could be a select box %>
<%= drink_form.select :name, [['Drink #1', 'drink_1'],['Drink #2', drink_2] %>
<%# Or a plain input %>
<%= drink_form.input :description %>
<%# ... Any other drink attributes ... %>
<% end %>
但是,我要做的是生成四个选择框,每个列表Drink.all
都可以将一个饮料对象换成另一个饮料对象。因此,当您将第一个选择框的值从可乐更改为百事可乐时,它会从可乐中删除 station_id,并将 station_id 添加到百事可乐。
我不需要能够编辑饮料属性。我只需要更改与该站点关联的饮料。这可能以相同的形式出现吗?