有人能告诉我什么是错与此代码...?
-
11-09-2019 - |
题
我有一个控制器,它与IMG标记替换现有的HTML一个的代码部分。的代码如下所示:
render :update do |page|
page.replace_html "chart-div", "<img src=\"#{chart.chart_file}\"/>" #chart.chart_file is a path
end
无论出于何种原因,我不断收到以下错误:
ActionController::RoutingError (No route matches "/public/charts/1_WEEKLY_ACTUAL_LINE.jpg" with {:method=>:get}):
我的 NO 的想法,为什么它的假设我想路线的地方。看来,我必须在一开始的“公共”为了要正确创建的文件,但是我必须为了显示图像删除“公”。有什么想法吗?是否有由处理动态创建的图像/项的更标准的机制?
最佳。
请注意:请没有“上传”插件。所有的文件被由系统创建时,不存在上载。
解决方案
当添加文件时,将其添加到文件系统,其中,它位于RAILS_ROOT/public/charts/1_WEEKLY_ACTUAL_LINE.jpg
。
当您想显示的文件,你需要一个指向它的URL。存储在目录public
文件由路径相对于public
目录其访问。
您可以尝试是这样的:
class Chart < ActiveRecord::Base # or whatever the chart class is
def chart_url
chart_file.gsub(%r{^/public}, "")
end
end
或者,您可以在URL存储在数据库中,然后执行:
class Chart < ActiveRecord::Base # or whatever the chart class is
def chart_file
"/public#{chart_url}"
end
end
不隶属于 StackOverflow