Можете ли вы изменить несколько свойств с помощью помощника?

Я использую следующий помощник выбора:

f.select(:page_color, Orders::PAYMENT_TYPES ,:prompt => "Select a Box")

Можно ли изменить несколько столбцов с одним выбором? Скажем, я хочу изменить:page_color и:pay_method с выбором "Check". Это возможно?

     PAYMENT_TYPES = [
    #  Displayed       stored in db
    [ "Check",          "check" ],
    [ "Credit card",    "cc" ],
    [ "Purchase order", "po" ]
  ]

1 ответ

Решение

Я думаю, что самое чистое было бы написать виртуальный атрибут:

def paymethod=(value)
  mapping = {
    'check' => 'red',
    'cc' => 'green',
    ...
  }

  self.page_color = mapping(value)
  super
end
Другие вопросы по тегам