在可以更改的表单对象上初始化布尔值

时间:2017-01-04 23:59:42

标签: ruby-on-rails ruby

我有一个表单对象,我想要一个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在保存时被调用。

0 个答案:

没有答案