У меня была та же проблема с зависимостью greendao-generator. Я ошибочно добавил, что зависимость от моего build.gradle (compile 'org.greenrobot:greendao-generator:3.1.0'
) и AndroidStudio показала мне то же сообщение об ошибке.
Вероятно, это потому, что этот модуль был скомпилирован с Java 8.
Поэтому я удалил эту зависимость из моего build.gradle и все скомпилировано счастливо:)
Хорошо я все еще плохо знаком с направляющими, и я не уверен точно, для чего Вы идете сюда, но если Вы просто идете для повторного использования кода, почему бы не использовать регулярный метод класса?
def self.ab(a, b)
a(a).b(b)
end
Вы могли сделать это более гибким путем взятия *args вместо a и b, и затем возможно сделать один или другое дополнительное. Если Вы застреваете на named_scope, разве Вы не можете расширить его, чтобы сделать почти такую же вещь?
Сообщите мне, полностью ли я от основы с тем, что Вы желаете сделать.
@PJ: Вы знаете, я полагал, что, но отклонил его, потому что я думал, что не смогу к более поздней цепочке на трети, названной объемом, как так:
Foo.ab(x, y).c(z)
Но с тех пор ab(x, y)
возвраты вообще b(y)
возвратился бы, я думаю, что цепочка работала бы. Способ заставить меня заново продумать очевидное!
Сделав его методом класса, вы не сможете связать его с прокси-сервером ассоциации, например:
@category.products.ab(x, y)
Альтернативой является применение этого патча для включения Параметр: through для named_scope:
named_scope :a, :conditions => {}
named_scope :b, :conditions => {}
named_scope :ab, :through => [:a, :b]
Да Повторное использование named_scope для определения другого named_scope
Я копирую это сюда для вашего удобства:
Вы можете использовать proxy_options для переработки одного named_scope в другой:
class Thing
#...
named_scope :billable_by, lambda{|user| {:conditions => {:billable_id => user.id } } }
named_scope :billable_by_tom, lambda{ self.billable_by(User.find_by_name('Tom').id).proxy_options }
#...
end
Таким образом, он может быть связан с другими named_scope.
Я использую это в своем коде, и он отлично работает.
Надеюсь, это поможет.