我有一个提交模型
belongs_to :report
has_many :answers
报告模型
has_many :questions
问题模型
has_many :answers # answer has submission_id
现在在 rabl 模板中我需要这样的输出
object @submission
attributes :status, :submission_time
child :report do
attribute :id, :name
child :questions do
attribute :id, :content
node(:answers_count) do |question|
question.answers.where("submission_id = ?", @submission.id).count
end
node(:answers) do |question|
question.answers.where("submission_id = ?", @submission.id).collect{ |answer| {:name => answer.name, :id => answer.id}}
end
end
end
这工作得很好,但问题出在我正在使用@submission 的 answers_count 和答案节点中,因为索引操作不起作用。
它在显示操作中很好,但索引操作正在创建问题,因为@submission 在索引操作中不可用。
PS:一旦我解决了这个问题,我会将大查询从视图移动到模型。我知道,为了简单起见,我已经粘贴了该内联。