用关联读取值(simple_form)

时间:2014-01-23 16:16:37

标签: ruby-on-rails ruby ruby-on-rails-4 simple-form

我有这样的模特:

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'的关联,但它创建了一个可编辑的输入表单项。我想访问关联中的值。我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

当你这样做时

    <%= q.association :question %>

您正在创建一个字段来编辑此关联,如您所见。

您需要什么,才能访问q.objectdefined as attr_reader here

在这种情况下,它将是您的QuestionGrade实例。

所以这个:

    <%= q.object.question.label %>

可能会解决您的问题。