M4k*_*4ks 9 file-upload ruby-on-rails
我在Rails中遇到了文件上传问题.我找到了file_field :file
帮手,可以用form_for(@some_model)
.但是,我找不到这种情况的任何用法,因为这些标签用于通过质量分配来创建/编辑某些模型.有AFAIK,不可能将fileupload视为典型字段(请参阅文件上传在Ruby on Rails 3中使用Multipart Form不起作用).在这种情况下,需要对上载文件进行手动操作.那么,为什么有人甚至想把文件上传作为模型编辑的一部分呢?
photo.rb
class Photo < ActiveRecord::Base
attr_accessible :name, :filename,
end
Run Code Online (Sandbox Code Playgroud)
photo_form.html.erb
<%= form_for(@photo, :multipart => true) do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.file_field :file %>
<%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
photos_controller.rb
def create
@photo = Photo.new(params[:photo])
Run Code Online (Sandbox Code Playgroud)
上面的行失败,因为theres no:file属性.必须先处理并手动删除:params
.再一次 - 这些标签是否真的有用?
我记得我用这个在Rails中上传了一个xml文件
看法:
<%= form_tag({action: :upload}, multipart: true) do %>
<%= file_field_tag 'xml_file' %>
<%= submit_tag 'Submit' %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
控制器:
def upload
file_data = params[:xml_file]
end
Run Code Online (Sandbox Code Playgroud)
它正在使用 form_tag 但也不难将其他信息添加到该表单中。
小智 5
我会给你一个我如何使用它的例子我认为它很好地解释了它自己,我希望这会有所帮助
<%= form_for @item do |f|%>
<%= f.file_field :photo, accept: 'image/png,image/jpeg'%>
<% end %>
Run Code Online (Sandbox Code Playgroud)
如果您有任何疑问,请告诉我
归档时间: |
|
查看次数: |
14040 次 |
最近记录: |