2016-08-02 16 views
1

:: sliceのような関係に自動的に委任配列方法、あなたが言うことができるので、例えばSomeModel.where(prop: 'value').slice(0, 10)なぜActiveRecord :: Relationはarray_delegableを削除しましたか? Rails 5で? Railsの4、ActiveRecordので

レール5.なぜで削除されましたか?

def array_delegable?(method) 
    Array.method_defined?(method) && BLACKLISTED_ARRAY_METHODS.exclude?(method) 
end 

def method_missing(method, *args, &block) 
    if @klass.respond_to?(method) 
    scoping { @klass.public_send(method, *args, &block) } 
    elsif array_delegable?(method) 
    to_a.public_send(method, *args, &block) 
    elsif arel.respond_to?(method) 
    arel.public_send(method, *args, &block) 
    else 
    super 
    end 
end 

そして、ここではRailsの5である:ここで

は、レール4における関係:: ActiveRecordの中に関連するコードです

def method_missing(method, *args, &block) 
    if @klass.respond_to?(method) 
    scoping { @klass.public_send(method, *args, &block) } 
    elsif arel.respond_to?(method) 
    arel.public_send(method, *args, &block) 
    else 
    super 
    end 
end 

(注:私はこの質問を投稿してみました明らかに登録が壊れており、助けを求める方法がない)

答えて

関連する問題