我有这样的模特:
class Grade < ActiveRecord::Base
has_many :question_grades
end
class QuestionGrade < ActiveRecord::Base
belongs_to :grade
belongs_to :question
# it has integer :number
end
class Question < ActiveRecord::Base
# it has string :label
end
我有一个'grade'模型的simple_form,它迭代了question_grades:
<%= simple_form_for @grade, :url => "/homeworks/update_grade", :method => :post do |f| %>
<%= f.simple_fields_for :question_grades do |q| %>
<%= q.association :question %>
<%= q.input :number, :collection => 0..2, label: false%>
</div>
</div>
此表单为每个'question_grade'创建一个可编辑的表单,允许访问者编辑question_grade的'number'属性。我还想通过使用值'question_grade.question.label'来显示标签。我创建了一个与'q.association:question'的关联,但它创建了一个可编辑的输入表单项。我想访问关联中的值。我怎么能这样做?
答案 0 :(得分:2)
当你这样做时
<%= q.association :question %>
您正在创建一个字段来编辑此关联,如您所见。
您需要什么,才能访问q.object
,defined as attr_reader here。
在这种情况下,它将是您的QuestionGrade
实例。
所以这个:
<%= q.object.question.label %>
可能会解决您的问题。