【问题标题】:Simple Form behaving different than form_for行为不同于 form_for 的简单表单
【发布时间】:2018-10-11 16:59:12
【问题描述】:

Simple_form

<%= simple_form_for(@book, wrapper: :horizontal_form, wrapper_mappings: {
  }, html: { class: 'form-horizontal' }) do |f| %>
  <%= f.error_notification %>
  <div class="image-upload">
    <%= f.input :book_cover, as: :file , input_html: { class: 'fa fa-cloud-download'}%>
  </div>
    <%= f.input :category_id, collection: @categories, prompt: 'Select a category' %>
    <%= f.input :author %>
    <%= f.input :description %>

  <div class="d-flex">
    <div class="ml-auto">
      <%= f.button :submit %>
      <%= f.button :cancel, to: books_path %>
    </div>
  </div>
<% end %>

这是我的 simple_form 表单。我希望 f.input :book_cover 显示为图标 fa fa-cloud-download 而没有正常的下载按钮。

CSS。

.image-upload > input {
    display: none;
}

我有另一个表单在使用它(这只是一个常规 form_for 资源的 sn-p:

 <%= f.form_group :avatar, class: "row" do |f| %>
                  <%= f.label :avatar, class: "col-sm-4 col-form-label" %>
                  <div class="col-md-8">
                    <label class="image-upload form-control">
                      <i class="fa fa-cloud-download"></i>
                      <% if @user.avatar.present? %> <%= @user.avatar_file_name %>
                      <% end %>
                      <%= f.file_field :avatar %>
                      <%= f.error_messages %>
                    </label>
                  </div>
                <% end %>

似乎无法让我的 simple_form 仅使用图标。

编辑:上传图片以显示我的问题是什么以及它应该是什么样子

picture should look like this

【问题讨论】:

  • 似乎无法正常工作是什么意思?怎么了?有错误吗?错误信息说什么?您是如何尝试的 - 请显示带有图标的 simple_form 代码。
  • 抱歉,用一些图片更新了我的问题以说明我的意思

标签: ruby-on-rails ruby


【解决方案1】:

SimpleForm 有一个input_field 方法,您可以使用它来代替input 仅呈现实际输入元素,而无需包装器 div 和标签。如果您想手动构建更复杂的结构,这会有所帮助。

<label class="col-sm-4 col-form-label">Book cover</label>
<div class="col-md-8">
  <label class="image-upload form-control">
    <i class="fa fa-cloud-download"></i>
    <%= f.input_field :book_cover %>
    <%= f.error_messages %>
  </label>
</div>

【讨论】:

  • 我刚刚尝试过,但没有成功。常规选择文件按钮仍会显示。也尝试了 input_field 也没有成功。
  • @flenning12 更新答案,希望对您有所帮助。 HTML 结构可能需要进一步的工作才能更好地适应布局。
  • 非常感谢!设法使用 HTML 结构并让它现在工作。感觉simple_form文档有点奇怪。
猜你喜欢
  • 1970-01-01
  • 2012-06-24
  • 2021-09-11
  • 2017-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多