update_all有效,但update_attributes没有

时间:2011-11-23 13:35:52

标签: ruby-on-rails validation update-attributes update-all

以下两个代码用于更新数据库。

使用'update_attributes'属性的第一个版本无效

@existing_exp = Emiexperiment.find(:first, :conditions => [ "EMI_COM_ID = ? and EMI_SUB_FK = ?", "EMI_999", "7789"])

@existing_exp.update_attributes(
                          :EMI_STATUS => "present",
                          :EMI_ADD_STATUS => "weak"
                         )

但是,下面的代码使用'update_All'属性似乎效果很好。

Emiexperiment.update_all "EMI_STATUS = 'present', EMI_ADD_STATUS = 'moderate'", ["EMI_COM_ID = ? and EMI_SUB_FK = ?", "EMI_999", "7789"]

以下是Emiexpression的类代码:

class Emiexperiment < ActiveRecord::Base
set_table_name "EMI_EXPERIMENT"
set_primary_key "EMI_OID"
attr_accessible :EMI_STATUS, :EMI_ADD_STATUS, :EMI_COM_ID, :EMI_SUB_FK


belongs_to :sub, :foreign_key => "EMI_SUB_FK"


end

我很困惑为什么会这样。

我没有在我的'Emiexperiment'模型中使用任何验证。

对此的任何暗示都非常感谢。非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:1)

您可能需要attr_accessor这些字段。 attr_accessor是一种制作吸气剂和制定者的红宝石方法 attr_accessible是一种Rails方法,允许您将值传递给质量分配: update_attributes(attrs)