Rails3 & ActiveRecord :: Relation - Арель и ИЛИ - PullRequest
2 голосов
/ 11 марта 2011

У меня есть несколько областей, определенных в Модели, называемой События.Теперь мне нужно присоединиться к ним, используя оператор ИЛИ.Я использую 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

с использованием Events.for_company(Company.find(1)).arel.or(Events.issues) Я получаю

NoMethodError: неопределенный метод `или 'для #Arel :: SelectManager

Я хочу получить все события, которые являются проблемами или происходят из пользователя определенной компании.

select * from events 
         join users  
           on events.user_id = users.id 
        where users.company_id = 1 
           or events.subject_type = "Issues"

Спасибо.

Ответы [ 2 ]

2 голосов
0 голосов
/ 12 января 2012
Event.for_company(Company.find(1)).issues
...