我有一个表单对象,我想要一个enabled
字段,根据我项目中的其他逻辑,该字段可以是true或false,如何在表单对象类中初始化类似的东西?我有类似的东西......
attr_accessor :enabled
def initialize
self.enabled = enabled
但我知道这是不正确的。
然后在我的代码中的另一个地方我想做这样的事情
if something
form_object.enabled
elsif something_else
!form_object.enabled
end
将enabled
标志设置为适当的状态,以便以后可以将其用于
修改:添加更多信息
我想把这个enabled
变量放在一个帮助器Ruby Class I中的地方
module Blah
module Type
module Mixins
module CallToActionHelper
attr_accessor :enabled
def initialize(cta_use: nil, cta: nil)
self.cta_type = cta_type
self.cta_token = create_cta_token
self.enabled = enabled
然后我对每种类型的号召性用语都有不同的ActiveRecord模型。它们都使用相同的控制器,控制器是根据我的参数中的隐藏字段设置enabled
变量的地方。
def populate_form_object(form_params, form_token)
cta_use = set_call_to_action_use(cta_use_id: form_params['cta_use_id'], cta_type_key: form_params['cta_type_key'], cta_id: form_params['cta_id'])
cta_type = CallToActionType.find_by_key(form_params['cta_type_key'])
form_object = cta_type.get_type_form(cta_use: cta_use)
form_object.cta_token = form_token
form_object.enabled(params["call_to_action_use_#{form_token}_enabled"])
# if params["call_to_action_use_#{form_token}_enabled"]
# form_object.enabled = true
# elsif params["call_to_action_use_#{form_token}_enabled"] == 'false'
# form_object.enabled = false
# else
# form_object.enabled = true
# end
return form_object
end
你可以看到我试图设置这个启用字段的代码。
上述方法populate_form_object
在保存时被调用。