我想在Rails中进行简单的文件上传。
我的模板:
<%= form_tag(controller: "my_controller", action: "change_profile_picture", multipart: true) do %>
<div class="field">
<%= label_tag :file %>
<%= file_field_tag :file %>
</div>
<div class="actions">
<%= submit_tag 'Submit' %>
</div>
<% end %>
我的经纪人:
def change_profile_picture
profile_picture = params[:file]
File.open(Rails.root.join('public', 'uploads', profile_picture.original_filename), 'wb') do |file|
file.write(profile_picture.read)
end
redirect_to :test, params: { profile_picture: params[:file] }
end
文件打开序列刚刚从rails教程中获取。
我的问题是,如果我检查,检查类和其他所有params [:file]它是一个String,并且inspect只显示字符串。示例:“my_picture.jpg”。
输入没有任何original_filename或文件应该具有的任何其他属性。
有什么想法吗?
答案 0 :(得分:5)
尝试
form_tag({controller: "my_controller", action: "change_profile_picture"}, multipart: true)