我自己的看法,其中正确创建一个HTML <select>
菜单一个有collection_select
,但是当我选择一个选项,它并不在数据库中保存。在同一个视图中,我有来自同一个数据库表的其他领域,他们保存起来。这里是我的模型:collection_select不保存所选的选项在数据库
class TrainingPart < ActiveRecord::Base
belongs_to :activity
belongs_to :training
accepts_nested_attributes_for :activity, :allow_destroy => true
end
class Activity < ActiveRecord::Base
has_many :training_parts
end
的部分是:
<div class="part">
<%= f.label :activity, "Activity" %>
<%= collection_select :training_part, :activity_id, Activity.all, :id, :name %>
<%= f.text_field :activity_id %>
<%= f.text_field :amount %>
</div>
的amount
场工作正常。
编辑:我没有在任何模型中使用attr_accessible
,所以所有表中的所有字段都可以访问。 (参考:Rails mass assignment definition and attr_accessible use)
你有'TrainingPart'模型中的attr_accessible:activity_id? – Substantial 2012-02-16 11:16:06
不,当我添加它时出现以下错误:'不能批量分配受保护的属性:数量' – maya 2012-02-16 11:26:23