我正在寻找为以下数据结构构建表单的正确方法:
class Profile < ActiveRecord::Base
attr_accessible :name
has_many :weights
accepts_nested_attributes_for :weights
end
class Tag < ActiveRecord::Base
attr_accessible :name
has_many :weights
end
class Weight < ActiveRecord::Base
attr_accessible :weight, :profile_id, :tag_id
belongs_to :profile
belongs_to :tag
end
在编辑配置文件表单中,我想提取所有权重并允许用户更新它们。我已经能够使用这样的嵌套属性来做到这一点:
<%= form_for [:admin, @profile] do |f| %>
<%= f.error_messages %>
<p>
<%= f.label :name %>
<%= f.text_field :name %>
</p>
<div class='weights'>
<%= f.fields_for :weights do |ff| %>
<%= ff.label :weight %>
<%= ff.text_field :weight %>
<% end %>
</div>
<%= f.submit %>
<% end %>
问题是我实际上也想在每个权重行上提取相关 tag_id 的标题(这样人们就知道他们正在更改哪个权重的标签)。我看不到提取此信息的方法,我是否应该在写出此表格之前进行某种形式的加入?这是一种愚蠢的方法吗?
感谢大家
-尼尔