использование update_attribute для обновления атрибутов класса в Rails - PullRequest
0 голосов
/ 01 марта 2012

Я использую код, где для обновления полей я должен использовать различные методы, основанные на некоторых условиях.фрагмент кода выглядит как

   @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 голосов
/ 01 марта 2012

Вам необходимо использовать accepts_nested_attributes_for (system.

. В вашем классе Issue вам нужно определить ассоциацию статуса, например nested_attributes

class Issue < AR
  has_one :status
  accepts_nested_attributes_for :status
end

После того, как вы сможете обновить свой статус с помощью

@issue.update_attribute({:status_attributes => {'name' => 'data'}})

PS: Вы не можете сделать это в ассоциациях принадлежащих_

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...