Помогите рефакторинг named_scope - PullRequest
0 голосов
/ 10 июля 2010

У меня есть следующий named_scope:

  named_scope :commentors, lambda { |*args|
      { :select => 'users.*, count(*) as total_comments',
        :joins => :comments,
        :conditions => { :comments => { :public_comment => 1, :aasm_state => 'posted', :chalkboard_user_id => nil} },
        :group => 'users.id',
        :having => ['count(*) > ?', args.first || 0],
        :order => 'count(*) desc' }
      } 

Мне нужно изменить условие на следующее:

["(public_comment = ? and box IS NOT NULL and can IS NOT NULL and aasm_state != ?", true, 'removed')]

Мне не очень повезло с синтаксисом для изменения условия. Может ли кто-нибудь быть добрым помощником?

1 Ответ

0 голосов
/ 10 июля 2010

Похоже, вам просто нужно дать имя таблицы для полей. Я не уверен, к какой таблице box и can относятся, но это должно дать вам представление:

["comments.public_comment = ? and box IS NOT NULL and can IS NOT NULL and comments.aasm_state != ?", true, 'removed')]

В начале у вас также была открытая скобка, которую я удалил.

...