Rails表单标签

时间:2014-04-27 01:09:19

标签: ruby-on-rails ruby

我有一个表单允许用户上传图片文件,但我目前以文本格式提供,所以他们输入图片的文件名,但我想拥有它,所以他们点击一个选择按钮上传文件而不是输入文件,然后当从硬盘驱动器中选择文件时,它将显示在按钮旁边的文本框中,谢谢。

<%= form_for(@question) do |f| %>
  <p>
    <%= f.label :question %><br/>
    <%= f.text_field :question, autofocus: true %>
  </p>
  <p>
    <%= f.label :description %><br/>
    <%= f.text_area :description, cols: 40, rows: 7 %>
  </p>
  <p>
    <%= f.label :posted_by %><br/>
    <%= f.text_field :posted_by, size: 5 %>
  </p>
  <p>
    <%= f.label :image_file_name %><br/>
    <%= f.text_field :image_file_name, size: 30, placeholder: 'GIF, JPG, or PNG file' %>
  </p>
  <p>
    <%= f.label :posted_at %><br/>
    <%= f.date_select :posted_at %>
  </p>
  <p>
    <%= f.submit %>
    <%= link_to('Cancel', questions_path) %>
  </p>
<% end %>

3 个答案:

答案 0 :(得分:2)

您可以使用file_field代替允许上传文件的text_field

<%= f.file_field :image_file_name,accept: 'image/png,image/gif,image/jpeg',:multiple => true %>

:multiple - 如果设置为true,在大多数更新的浏览器中,系统将允许用户选择多个文件。

:accept - 如果设置为一个或多个mime-types,则在选择文件时会向用户建议过滤器。您仍然需要设置模型验证。

有关详细信息,请参阅此API

答案 1 :(得分:0)

尝试使用file_field代替text_field

<%= f.text_field :image_file_name, accept: 'image/png,image/gif,image/jpeg' %>

查看更多:FormHelper.html#method-i-file_field

答案 2 :(得分:0)