私はコードを使用しています。フィールドを更新するには、いくつかの条件に基づいて異なるメソッドを使用する必要があります。コードスニペットはupdate_attributeを使用してRailsのクラス属性を更新する
@issue = Issue.find(some_id) # Issue is ActiveRecord class
if 'class fields' # some condition checking
@issue.send("status").name = data # status is a class and name is its attribute
@issue.save
else
@issue.update_attribute("subject", data) # subject is a string
end
のように見える私はクラスが、例えばのため を属性を更新するためにupdate_attributeを使用することができます解決策を探しています
@issue.update_attribute(@issue.:status.name, data) # invalid
は私が 愚かないくつかのことをやっているかもしれないが、私はより良いアプローチに
のthnxを知りたいです。あなたは
@issue.update_attribute({:status_attributes => {'name' => 'data'}})
PSで自分のステータスを更新することができた後、あなたの必要性がnested_attributes
class Issue < AR
has_one :status
accepts_nested_attributes_for :status
end
のように自分のステータスの関連付けを定義し、あなたの問題のクラスではaccepts_nested_attributes_for
(システム。
を使用する必要がある
_class_と_instance_の意味はここにあります。適切な言葉遣いを使用すると役に立つでしょう。私はあなたが何をしようとしているのか理解していません。 'issue.status.name'の意味は何ですか?問題モデルはどのように見えますか? – iltempo
IssueクラスはActiveRecordクラスで、belongs_to:status、:class_name => 'IssueStatus'、:foreign_key => 'status_id'を含んでいます。問題のオブジェクトを使用して状態を更新する方法を知りたいだけです –