使用update_attribute更新Rails中的类属性

时间:2012-03-01 07:35:38

标签: ruby-on-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。

1 个答案:

答案 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协会上这样做。