ruby-on-rails - simple_form 中的封装映射

标签 ruby-on-rails simple-form

simple_form github 上的示例 repo,有一个包含包装器信息的块。
https://github.com/rafaelfranca/simple_form-bootstrap/blob/master/app/views/examples/_horizontal_form_sf.html.erb

它工作正常,但似乎需要为每个表单添加很多额外的设置。
有没有办法添加名称此信息并将其添加为参数?

<%= simple_form_for @user_horizontal, url: create_horizontal_examples_url, as:     'user_horizontal', html: { class: 'form-horizontal' },
  wrapper: :horizontal_form,
  wrapper_mappings: {
    check_boxes: :horizontal_radio_and_checkboxes,
    radio_buttons: :horizontal_radio_and_checkboxes,
    file: :horizontal_file_input,
    boolean: :horizontal_boolean
  } do |f| %>
  <%= f.error_notification %>
  <%= f.input :email, placeholder: 'Email' %>

最佳答案

在 View 助手中,添加:

def wrapped_form(resource, options = {}, &block)
  options[:html] = { class: 'form-horizontal'}
  options[:wrapper] = :horizontal_form
  options[:wrapper_mappings] = {
    check_boxes: :horizontal_radio_and_checkboxes,
    radio_buttons: :horizontal_radio_and_checkboxes,
    file: :horizontal_file_input,
    boolean: :horizontal_boolean
  }
  simple_form_for(resource, options, &block)
end

然后你可以像这样使用:
<%= wrapped_form @user_horizontal, url: create_horizontal_examples_url, as: 'user_horizontal' do |f| %>
  <%= f.error_notification %>
  <%= f.input :email, placeholder: 'Email' %>
<% end %>

关于ruby-on-rails - simple_form 中的封装映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24838716/

相关文章:

ruby-on-rails - 为某些操作设置布局?

ruby-on-rails - rails 6 : form with remote: true and Turbolinks not showing flash after redirect

ruby-on-rails - 无法让 rails 搜索表单与 simple_form 和 sunspot 一起使用

javascript - 无休止的滚动停止在第 6 页上加载结果

ruby-on-rails - 未定义方法 `<<' 为 nil :NilClass got this error while merging instance variables

ruby-on-rails - 客户端验证 + Rails 5 中的 simple_form

ruby-on-rails-3 - Rails 3.2.2 简单形式嵌套模型(has_many through)可以工作,但需要改进

ruby-on-rails - Rails 5,更新 Controller 中的特定表单字段

ruby-on-rails - Friendly_Id 错误,未初始化常量

ruby-on-rails - 如何在没有规范框架的情况下使用 Minitest 首先测试工厂?