0

我有以下模型:

class Origtext < ActiveRecord::Base
  attr_accessible :book, :chapter, :textual, :verse
  has_many :reviews
end


class Review < ActiveRecord::Base
  belongs_to :origtext
  attr_accessible :description
end

以下收集了该书为“圣经”的所有原始文本

@origtexts = Origtext.where(:book => 'Bible')

如何收集与某本书相关的所有评论的红宝石代码是什么?

发布代码以迭代评论:

# @reviews.each do |review|
    #   puts review
    # end
4

3 回答 3

2

在你的控制台中试试这个:

@origtexts = Origtext.where(:book => 'Bible')

@origtexts.each do |orig_text|
  puts orig_text.name
  puts orig_text.reviews # puts the reviews associated with the orig_text
end

或带有 id:

@origtext = Origtext.where(id: params[:id]).first
@origtext.reviews # returns the reviews associated with the origtext

或直接来自 Review 模型:

the_holy_bible = Origtext.where(:book => 'Bible').first
@reviews = Review.where(origtext_id: the_holy_bible.id)
于 2013-05-03T18:18:26.590 回答
0
@reviews = Review.where(:origtext => { :book => 'Bible' })
于 2013-05-03T18:19:52.623 回答
0

它应该像下面这样简单:

@reviews = @origtexts.each(&:reviews)
于 2013-05-03T18:16:30.947 回答