:名前付きスコープ拡張からnamed_scope引数にアクセスするには?たとえば、次の
named_scope :search, lambda {|my_args| {...}} do
def access_my_args
p "#{my_args}"
end
end
# Call:
Model.search(args).access_my_args
あなたは私がnamed_scope拡張子にラムダから引数をアクセスしたい見ることができるように。これを行う方法はありますか?
より具体的な例:
class User < ActiveRecord::Base
named_scope :by_name, lambda {|name_from_scope| {:conditions => {:name => name_from_scope}}} do
def change_name
each { |i| i.update_attribute(:name, "#{name_from_scope}xyz") }
end
end
end
(私は上のfind_by_nameの余地があることを知っていると...)。スコープ拡張のスコープで渡されるname_from_scope引数を使用します。
投稿したコードには2ブロックあり、意図したとおりに動作しません。 パラメータとして必要な場合、どのようにしてargsにアクセスできませんか? 達成しようとしていることを具体的にすることはできますか? – nessence
が動作します。参照:http://ryandaigle.com/articles/2008/3/24/what-s-new-in-edge-rails-has-finder-functionality - >名前付きスコープ拡張 – spas