Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 如何根据模型名称和属性值向所有简单表单输入添加自定义属性?_Ruby On Rails 4_Simple Form - Fatal编程技术网

Ruby on rails 4 如何根据模型名称和属性值向所有简单表单输入添加自定义属性?

Ruby on rails 4 如何根据模型名称和属性值向所有简单表单输入添加自定义属性?,ruby-on-rails-4,simple-form,Ruby On Rails 4,Simple Form,我想为simple_表单生成的每个输入添加一个自定义属性。属性值基于模型名称和字段。所以我这样做了: # app/inputs/base.rb class Base < SimpleForm::Inputs::Base def input_html_options super['custom-attr'] = "#{object_name}.#{attribute_name}" end end #app/inputs/base.rb 类Base

我想为simple_表单生成的每个输入添加一个自定义属性。属性值基于模型名称和字段。所以我这样做了:

# app/inputs/base.rb
class Base < SimpleForm::Inputs::Base
  def input_html_options
    super['custom-attr'] = "#{object_name}.#{attribute_name}"
  end
end
#app/inputs/base.rb
类Base

这不管用。根本没有加载代码以执行。我在这里遗漏了什么吗?

您应该在
lib/simple\u form/inputs/base.rb中添加代码,代码应该是这样的,以确保可以自动加载

module SimpleForm
  module Inputs
    class Base
      def input_html_options
        @input_html_options...
      end
    end
  end
end
或者像这样使用
config/initializers/simple\u form\u ext.rb
中的
class\u eval

SimpleForm::Inputs::Base.class_eval do
  def input_html_options
    @input_html_options[:'custom-attr'] = "#{object_name}.#{attribute_name}"
    @input_html_options
  end
end