以下两个代码用于更新数据库。
使用'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'模型中使用任何验证。
对此的任何暗示都非常感谢。非常感谢你的帮助:))
答案 0 :(得分:1)
您可能需要attr_accessor
这些字段。 attr_accessor
是一种制作吸气剂和制定者的红宝石方法
attr_accessible
是一种Rails方法,允许您将值传递给质量分配: update_attributes(attrs)
。