未定义的方法`original_filename'用于#..当我点击CreateProfile Button时出现此错误
def createProfile 如果params [:profile] .blank?
返回 @profile = Profile.new
@profile.upload_file = params[:profile]
if @profile.save
flash[:notice] = "Thank You for your submission"
redirect_to profile_index_path
else
flash[:notice] = "Problem in your submission"
render 'new'
end
end
%h3 Apply For Job
=form_for :profile, url:{action: "createProfile"}, :multipart => true, html:{class: "form-horizontal"} do |f|
%div.form-group
=f.label :data, 'CV', {:class => 'col-lg-2 control-label'}
%div.col-lg-3
=f.file_field :data, {:class => 'form-control'}
%div.form-group
%div.col-lg-offset-2.col-lg-10
=f.submit :class => 'btn btn-primary'
= link_to profile_index_path do
= content_tag :button, class: "btn btn-default" do
="Cancel"
def upload_file=(imcoming_file)
self.filename = imcoming_file.original_filename
self.content_type = imcoming_file.content_type
self.data = imcoming_file.read
end
def filename=(new_filename)
write_attribute("filename", sanitize_filename(new_filename))
end
private
def sanitize_filename(filename)
just_filename = File.basename(filename)
just_filename.gsub(/[^\w\.\-]/, '-')
end
为什么会出现original_filename错误?任何建议......?
答案 0 :(得分:0)
在控制器第二行的末尾添加[:data]
。 params[:profile]
提供了与表单中的配置文件模型相关的一组参数。在您的情况下,只有与'data'
相关的参数可用。通过向行添加[:data]
,您将控制器指向该特定参数。
当然,您需要指定要存储上传文件的目录。 Ruby on Rails文档(http://guides.rubyonrails.org/form_helpers.html)提供了有用的信息。
对你来说可能有点晚,但我希望有人能从这个答案中受益。