0

我正在将 Rails 2.3.5 应用程序升级到 Rails 3。我没有实现该应用程序,我只是在升级它。我发现开发人员使用查询哈希的方式很难在不触及很多文件的情况下更改它,我想避免这种情况。

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 类中的查询转换为 Rails 3。有人可以建议将其移植到 Rails 3 的最佳方法,而不更改从 A 继承的类实现 specific_params 方法。

谢谢。

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 回答