2

以下の 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ゲッターとセッターを作るRubyメソッドです。
attr_accessible一括代入に値を渡すことができる Rails メソッドですupdate_attributes(attrs)

于 2011-11-23T13:50:11.537 に答える