2

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

使用“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”模型中使用任何验证。

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

4

1 回答 1

1

您可能需要attr_accessor这些字段。 attr_accessor是一种创建 getter 和 setter 的 ruby​​ 方法。
attr_accessible是一种 Rails 方法,允许您将值传递给批量赋值:例如update_attributes(attrs).

于 2011-11-23T13:50:11.537 回答