Ruby on rails 如何在RubyonRails中使用jquery获取资产路径
我在RubyonRails应用程序中使用文件上传。当文件上传时,我想为其他人创建链接,以便他们也可以下载该文件。我在文件附件的资产文件夹中有一个名为Ruby on rails 如何在RubyonRails中使用jquery获取资产路径,ruby-on-rails,ruby,assets,Ruby On Rails,Ruby,Assets,我在RubyonRails应用程序中使用文件上传。当文件上传时,我想为其他人创建链接,以便他们也可以下载该文件。我在文件附件的资产文件夹中有一个名为job\u attachments的文件夹。我想知道如何使用jQuery获取job\u附件的路径 我在控制器中执行类似的操作: def uploadattachment if(params[:job][:uploaded_data]) uploaded_io=params[:job][:uploaded_data]
job\u attachments
的文件夹。我想知道如何使用jQuery获取job\u附件的路径
我在控制器中执行类似的操作:
def uploadattachment
if(params[:job][:uploaded_data])
uploaded_io=params[:job][:uploaded_data]
File.open(Rails.root.join('app/assets', 'job_attachments', uploaded_io.original_filename), 'wb') do |f|
f.write(uploaded_io.read)
end
respond_to do |format|
format.json {render :layout=>false , :json => uploaded_io.original_filename}
end
end
结束您可能不想将上载的内容放入资产文件夹。资产用于创建属于应用程序一部分的内容。此外,app/assets
客户端无法直接访问。我想你希望人们能够下载这些文件
在public下创建另一个文件夹(“uploads”),并将文件放在那里
要在jQuery中获取路径,只需在上传文件时从控制器返回路径即可。您可能希望转换散列,而不是字符串,因为在jQuery中这更容易处理
def uploadattachment
if(params[:job][:uploaded_data])
uploaded_io=params[:job][:uploaded_data]
File.open(Rails.root.join('public', 'uploads', 'job_attachments', uploaded_io.original_filename), 'wb') do |f|
f.write(uploaded_io.read)
end
respond_to do |format|
format.json {render :layout=>false , :json => {:path => File.join('uploads', uploaded_io.original_filename}}
end
end
end
文件在jobs_附件文件夹中完美上传。为什么我需要上传到公共目录?更新答案<代码>应用程序/资产
将在开发中工作,但在生产模式下,您无法直接访问这些文件。它们被预编译成公共/资产。部署后添加的任何内容都不会发生这种情况。