イベントと呼ばれるモデルで定義されたスコープがいくつかあります。ここで、OR 演算子を使用してそれらを結合する必要があります。私は Rails3 を使用していますが、ActiveRelation と Arel、およびこれをどのように使用するべきかについて少し混乱しています。
scope :issues, where(:subject_type => "Issue")
scope :for_company, lambda {|company| joins(:user)
.where(:users => { :company_id => company.id })
.includes(:user)}
イベントを取得する方法
for_company(x) OR issues
しようEvents.for_company(X).or(issues)
とすると、エラーが発生します
Events.for_company(Company.find(1)).or(Events.issues)
NoMethodError: #ActiveRecord::Relation の未定義のメソッド「or」
を使っEvents.for_company(Company.find(1)).arel.or(Events.issues)
て
NoMethodError: #Arel::SelectManager の未定義のメソッド「or」
問題である、またはユーザーが決定された会社の場所であるすべてのイベントを取得したい。
select * from events
join users
on events.user_id = users.id
where users.company_id = 1
or events.subject_type = "Issues"
ありがとう。