移植条件哈希用于新的rails 3活动记录查询接口

时间:2011-06-15 09:32:02

标签: ruby-on-rails-3 activerecord rails-3-upgrade

我正在将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的工具的特定类型的set_params方法

感谢。

1 个答案:

答案 0 :(得分:0)

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

将在Rails 3中运行。

或者您可以将其更改为:

AnObject.where({:param_1 => @param_1}.merge(specific_params))