Ruby on Rails模型字段通过控制台更新,而不是通过浏览器

时间:2014-06-27 17:29:44

标签: ruby-on-rails ruby activerecord

我注意到我的一个模型字段在初始设置后不会通过我的应用程序在浏览器中更新。当我去研究这个时,我发现该字段只是通过自定义验证器声明:

validate :amount_validator

def amount_validator
    if self.amount == nil
        errors.add(:amount, "Please fill in the amount.")
    end
end

我认为问题在于缺少这个问题:

validates :amount, presence: true

我添加了这个,但我仍然无法通过浏览器更新字段。当我保存该值并刷新页面时,它已恢复为原始值。我读了另一个SO问题,表明我应该尝试通过控制台更新此字段,看看是否有任何错误。我做到了这一点,没有任何错误。回到浏览器并且值已经改变但我仍然无法通过浏览器更新它。谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

根据您使用的导轨版本,错误可能在accessible attributes(Rails 3)或strong paramenters(Rails 4)附近。

在Rails 3上,确保您在模型

中拥有此功能
attr_accessible :amount

在Rails 4上,确保您在控制器中传递给update_attributes的哈希中的属性:

your_model.update_attributes(params.require(:your_model_name).permit([:amount]))