如何在 rails_admin 中将文本字段覆盖到文本区域

How to override text field to textarea in rails_admin

我第一次尝试自定义 rails_admin,默认情况下我得到 text field,我想将其转换为 textarea。在模型中,我将数据类型指定为 string 那么是否可以显示 textarea?

config/initializer/rails_admin.rb

config.model Product do
    list do
      exclude_fields :id, :created_at, :updated_at
    end
    create do
     ......
     configure :description do
        partial 'my_partial_file' # to override field I have created partial file
      end
     .....
    end

  end

views/rails_admin/main/_my_partial_file.html.haml

= form.send field.view_helper, field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, checked: field.form_value.in?([true, '1']), class: 'form-control', required: field.required})

我试过 html_attributes rows: 50, cols: 60 也试过 custom_css 但没有用。请指导我哪里做错了?如果可能的话,请让我理解这个 _my_partial_file

的语法

编辑: 如果我这样做,那么我可以获得 textarea

field :description, :text do # use second parameter to set field type
  required true        
  #partial 'my_partial_file'
end

但是如果我渲染部分然后再次 text_field 显示。 :( 我想要 text_area + 部分文件也应该呈现,因为它包含其他要处理的代码。

我已经自己解决了这个问题。我想删除这个问题,但后来意识到,如果将来有人遇到同样的问题,那么我的解决方案会有所帮助。

我在 _my_partial_file 中更改的是:

= form.text_area field.method_name, field.html_attributes.reverse_merge({ value: field.form_value, checked: field.form_value.in?([true, '1']), class: 'form-control', required: field.required})
........ # other piece of code

config/initializer/rails_admin.rb 中,我保留了原样的代码:

   create do
     ......
     configure :description do
        partial 'my_partial_file' 
      end
     .....
    end

我从这里得到参考:https://www.omniref.com/ruby/gems/obitum-rails_admin/0.0.5/files/app/views/rails_admin/main/_form_text.html.haml#line=5 (Wayback link)

http://ruby-doc.org/gems/docs/r/rails_admin_settings-0.8.0/app/views/rails_admin/main/_setting_value_html_haml.html

(注意:link 已死。这可能与旧版本的文件相同:https://github.com/rails-admin/rails_admin_settings/blob/v0.8.0/app/views/rails_admin/main/_setting_value.html.haml