0

Rails2.3.5アプリをRails3にアップグレードしています。アプリを実装していません。アップグレードしているだけです。開発者がクエリハッシュを、多くのファイルに触れずに変更するのが難しい方法で使用していることがわかりました。これは避けたいと思います。

class A
    def method_1
        AnObject.find(:all, :conditions => {:param_1 => @param_1}.merge(specific_params))
    end

    def specific_params
       raise NoMethodError, "Subclasses must implement this method", "specific_params"
    end
end

class B < A
    def specific_params
        {param_B1 => false, param_B2 => true}
    end
end

Aから継承するクラスはたくさんあります。クラスAのクエリをRails3に変換する必要があります。Aから継承するクラスを変更せずに、これをRails3に移植する最良の方法を誰かが提案してください。

ありがとう。

4

1 に答える 1

0
AnObject.find(:all, :conditions => {:param_1 => @param_1}.merge(specific_params))

Rails 3 で動作します。

または、次のように変更できます。

AnObject.where({:param_1 => @param_1}.merge(specific_params))
于 2011-06-15T09:50:09.127 に答える