匿名スコープの一部としてnamed_scopeを使用した場合の警告
-
21-09-2019 - |
質問
私は、次の名前付きスコープを持っています
named_scope :find_all_that_match_tag, lambda { |tags| {
:select => "articles.id, tags.name",
:joins => :tags,
:conditions => ["tags.name IN (?)",tags]}
}
これはスクリプト/コンソール
で、次のように細かい動作しますArticle.find_all_that_match_tag(["cooking"])
しかし、私は匿名のスコープの一環として、このようにそれを使用する場合は、
scope = Article.scoped({})
scope = scope.scoped.find_all_that_match_tag(["cooking"])
私は2番目の行に、警告を受けるます:
/Users/Server/.gem/ruby/1.8/gems/activerecord-2.3.4/lib/active_record/named_scope.rb:13: warning: multiple values for a block parameter (0 for 1)
from /Users/Server/.gem/ruby/1.8/gems/activerecord-2.3.4/lib/active_record/named_scope.rb:92
それはまだ動作しますが、いただきましたが、警告の原因?そしてどのように私はそれを取り除くようにしてください?
解決
私はおそらく、条件なしの匿名の範囲を含めて気にしないだろうまずはます。
と、私は警告が引数なしでチェーンの一部としてスコープへの呼び出しであると思います。それはあなたが単に以前のスコープにチェーン、匿名または名前付きのことができるようにすべきであるという名前のスコープ「find_all_that_match」を持って、必要はありません。
scope = Article.scoped({})
scope.find_all_that_match_tag(["cooking"])
また、「tagged_as」または単にのような短い名前のスコープを使用する価値は
「タグ付け」する可能性があります所属していません StackOverflow