В Reform, как составить свойство с двумя значениями из формы
У меня есть объект формы, созданный с помощью Reform, и я хотел бы заполнить свойство двумя значениями, которые берутся из формы и не включены в модель.
Моя форма:
div.form-item.form-item--near
= f.input :employment_contract_type, collection: @presenter.employment_contract_codes_collection
= f.input :employment_contract_time, collection: ["Partial", "Complete"], as: :radio_buttons
Моя форма объекта:
class FinancingRequestForm < Reform::Form
property :employment_contract_code
property :employment_contract_time, virtual: true
property :employment_contract_type, virtual: true
end
Модель:
# Table name: purchase_financing_customers
#
# id :integer not null, primary key
# employment_contract_code :string
module Purchase
class FinancingCustomer < ApplicationRecord
end
end
Я хотел бы что-то вроде этого:
class FinancingRequestForm < Reform::Form
ContractCodePopulator = lambda do |_|
time = employment_contract_type == "Complete" ? "C" : "P"
self.employment_contract_code = "#{send("employment_contract_type")}#{time}"
end
property :employment_contract_code, populator: ContractCodePopulator
property :employment_contract_time, virtual: true
property :employment_contract_type, virtual: true
end
Но проблема в том, что де Populator не срабатывает, когда я запускаю form.validate(request_params).
Я просто хочу, чтобы код занятости_contract_code составлял два других виртуальных значения.
Спасибо!