/ /#<ActiveRecord :: Associations :: HasOneAssociationの未定義のメソッド `update'-ruby-on-rails、ruby-on-rails-3

#<ActiveRecord :: Associations :: HasOneAssociation - ruby​​-on-rails、ruby-on-rails-3のための未定義のメソッド `update '

モデルの関連付けは次のとおりです。

モデルI

class TimeLog < ActiveRecord::Base
has_one :custom_time_field,  :dependent => :destroy
end

モデルII

class CustomTimeField <  ActiveRecord::Base
belongs_to :time_log
end

エラーの詳細:

a = TimeLog.find(1)
a.custom_time_field

#returns => #<CustomTimeField id: 1, time_entry_id: 1, status: "incomplete", start_time: "2000-01-01 11:24:00", end_time: "2000-01-01 11:24:00">

a.custom_time_field.update(1, :status => "") # returns undefined method `update"

ただし、a.custom_time_field.update_attributes()は機能します

これで、update_attributesを使用でき、オブジェクトを作成してsaveメソッドを使用することもできます。

しかし、なぜそのような場合に更新メソッドを使用できないのですか?これは、一度に複数の属性を更新する必要がある場合に役立ちます。

コメント/ポインタ?

回答:

回答№1は2

update モデルのクラスメソッドです。このように呼んでください:

CustomTimeField.update(1, :status => "")