Ruby on rails 3 我想用carrierwave将文件更新为现有rails记录
我有一个表单,要求用户上传一个文件。要上传的文件应该保存到现有记录中。当用户上载此文件时,我不希望立即保存它(因为它将创建新记录),我希望访问控制器中的参数,并将图像属性更新到现有记录。当前,当我访问参数和更新_属性时,它显示为已更新,但当我查看数据库时,图像属性仍然为零。当我直接保存为新记录时,它工作正常,但它不允许我手动更新,有人能帮我吗? 先谢谢你 表格Ruby on rails 3 我想用carrierwave将文件更新为现有rails记录,ruby-on-rails-3,ruby-on-rails-4,file-upload,carrierwave,Ruby On Rails 3,Ruby On Rails 4,File Upload,Carrierwave,我有一个表单,要求用户上传一个文件。要上传的文件应该保存到现有记录中。当用户上载此文件时,我不希望立即保存它(因为它将创建新记录),我希望访问控制器中的参数,并将图像属性更新到现有记录。当前,当我访问参数和更新_属性时,它显示为已更新,但当我查看数据库时,图像属性仍然为零。当我直接保存为新记录时,它工作正常,但它不允许我手动更新,有人能帮我吗? 先谢谢你 表格 <%= form_tag url_for(:controller=>"deal",:action=>"create_d
<%= form_tag url_for(:controller=>"deal",:action=>"create_deal"),:method=>'get',:html=>{:multipart=>true} do %>
<%= file_field_tag :image, :value=> params[:image] %>
<%= submit_tag "upload" %>
<%end%>
我假设你传递的是一个id,而不是:last e_record=Deal.find(:last)@Rakesh是的,我传递的是id,但记录得到更新,而不是图像字段为零。
def create_deal
@attachment = params[:image]
e_record = Deal.find(:last) #get existing record
if e_record.update_attribute(:image, @attachment)
redirect_to :action=>"profile"
end
end