我正在构建一个使用一种元问题模型的报告系统。问题预先保存在数据库中,然后根据报告的类型从数据库中提取一些问题。
想要保持干燥,我试图找出一种方法将Variable
模型的信息传递给我report_header
,但无济于事。
在new
我的行动中:
reportBody = @report_head.report_bodies.build(:variable_id => a.id)
@report_head.variables #modified, thx.
我需要的只是以Variable
某种DRY
方式将属性从报告头传递给报告头。
如果您需要了解我的模型:
class Variable < ActiveRecord::Base
attr_accessible :id,:break_point, :description, :name, :time_frequency, :v_type
has_many :report_bodies
has_many :report_heads, :through => :report_bodies
end
class ReportHead < ActiveRecord::Base
attr_accessible :email, :name , :report_bodies_attributes, :report_bodies, :variables_attributes
has_many :report_bodies
has_many :variables, :through => :report_bodies
accepts_nested_attributes_for :report_bodies
end
class ReportBody < ActiveRecord::Base
attr_accessible :report_head_id, :variable_value, :variable_id, :variables_attributes, :report_heads
belongs_to :report_head
belongs_to :variable
end
更新
我按照建议更新了模型,并修改了调用变量的方式。但是,如果我执行以下操作,我仍然对如何在视图中使用它感到困惑:
<%= f.fields_for :variables do |variable| %>
<%= variable.text_field :name, :value => :name, :class => 'text_field' %>
<% end %>
它打印一个字符串而不是实际名称。