在Paperclip中查看照片时出现问题 - 路线错误

时间:2010-09-27 07:59:15

标签: ruby-on-rails routes paperclip rmagick

我已在我的系统上成功设置Paperclip和ImageMagick,文件正确上传,调整大小并保存到正确的文件夹中。

我尝试在我的视图中显示这些图像:

<%= image_tag @customer.logo.url(:medium) %>

不显示图像。当我转到图像的直接网址时,我得到:

Routing Error
No route matches "/images/assets/logos/1/medium/corplogo.jpg" with {:method=>:get}

这是一个仍在开发中并在Windows上运行的本地服务器。我的表格是多部分的:

<% form_for @customer, :url => {:action => "update", :id => @customer}, :html => {:multipart => true, :id => "myform"} do |f| %>

------ Dev Server ------

处理ApplicationController #index(适用于2010年9月27日04:38:33的127.0.0.1)[G ET]   参数:{“1285570273”=&gt; nil}

ActionController :: RoutingError(没有路由匹配“/images/assets/logos/1/medium/corplogo.jpg”与{:method =&gt;:get}):   haml(3.0.15)rails /./ lib / sass / plugin / rack.rb:41:in`call'

渲染救援/布局(not_found)

------模型------

has_attached_file :logo,
    :url => "assets/logos/:id/:style/:basename.:extension",
    :path => ":rails_root/public/assets/logos/:id/:style/:basename.:extension",
    :styles => {:medium => "300x300>", :thumb => "100x100>" }

2 个答案:

答案 0 :(得分:3)

我找到了问题的答案,它取决于模型中的url声明。

而不是:

:url => "assets/logos/:id/:style/:basename.:extension"

它应该是:

:url => "/assets/logos/:id/:style/:basename.:extension"

答案 1 :(得分:0)

我使用“webrick”服务器收到此错误。我检查了我的“公共/系统”文件夹上的所有文件访问权限,它们是正常的。

最后我切换到apache / passenger,它工作正常,图像显示正确。