我正在使用代码来更新字段我必须根据某些条件使用不同的方法。代码段看起来像
@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。
答案 0 :(得分:0)
您需要使用accepts_nested_attributes_for
(系统。
在您的问题类中,您需要定义您的状态关联,如nested_attributes
class Issue < AR
has_one :status
accepts_nested_attributes_for :status
end
您可以通过
更新您的状态@issue.update_attribute({:status_attributes => {'name' => 'data'}})
PS:你不能在belongs_to协会上这样做。