我在 Rails 中遇到文件上传问题。我找到file_field :file
了可以与form_for(@some_model)
. 但是,我找不到这种情况的任何用途,因为这些标签用于通过批量分配创建/编辑某些模型。AFAIK 不可能将 fileupload 视为典型字段(请参阅File upload won't work in Ruby on Rails 3 using Multipart Form)。在这种情况下,需要对上传的文件进行手动操作。那么,为什么有人甚至想将文件上传作为模型编辑的一部分呢?
照片.rb
class Photo < ActiveRecord::Base
attr_accessible :name, :filename,
end
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 %>
照片控制器.rb
def create
@photo = Photo.new(params[:photo])
上面的行失败,因为没有 :file 属性。它必须在之前处理并从:params
. 再一次 - 这些标签有什么实际用途吗?