如何指定:path和:url在Paperclip,Rails 3.0.12中保存图像

时间:2012-04-12 06:43:40

标签: ruby-on-rails

我正在将Paperclip与我的Rails 3.0应用程序一起使用,以便向用户添加头像,并且由于路径已关闭,因此无法保存图像。这是我得到的:

在2012-04-11 23:38:29 -0700开始获取127.0.0.1的“/profilepics/small/missing.png”

ActionController :: RoutingError(没有路由匹配“/profilepics/small/missing.png”):

我的用户模型有:

    has_attached_file :profilepic, :styles => { :small => "150x150>" }

我应该放置什么:path => &安培; :url => ?

表格如下:

      <% form_for @user, :html => { :multipart => true } do |f| %>

      <%= f.file_field :profilepic %>

      <% end %>

日志看起来像:

在2012-04-12 00:33:51 -0700开始获取127.0.0.1的“/system/profilepics/small/missing.png”

ActionController :: RoutingError(没有路由匹配“/system/profilepics/small/missing.png”):

在救援/布局(1.2ms)内呈现/usr/lib/ruby/gems/1.9.1/gems/actionpack-3.0.12/lib/action_dispatch/middleware/templates/rescues/routing_error.erb

3 个答案:

答案 0 :(得分:3)

参见我的样本:

   has_attached_file :avatar, :styles => { :thumb => "50x50#", :large => "1000x1000>", :medium => "200x200#" },
     :default_url => "/system/avatars/:style/missing.png",
     :url  => "/system/:attachment/:id/:style_:filename",
     :path => ":rails_root/public/system/:attachment/:id/:style_:filename"
  • :default_url - 当用户没有上传任何头像时默认图片的路径
  • “#” - 此符号用于裁剪图像

然后你可以这样显示你的图像:

<%=image_tag(@user.avatar.url(:thumb))%>
<%=image_tag(@user.avatar.url(:medium))%>

答案 1 :(得分:1)

立即行动!!!

对于那些在同一问题上挣扎的人来说,这里有一些重要的事情要始终确认并检查:

  1. 在您的表单中,请始终指定 {:multipart =&gt; true} 否则,表单不会接受文件附件。

    <%= form_for @user, :html => **{ :multipart => true }** do |f| %>
    
  2. 在您的user.rb(或您想要添加附件的任何型号)中,点击 attr_accessible:照片(或您为附件命名的任何内容)

  3. 安装新Gem后,务必重新启动服务器。

  4. :)谢谢大家!!!!

答案 2 :(得分:0)

如果您只想显示图像,则无需提供网址和路径选项。

在显示页面中使用此行,它将显示图像...

     <%=image_tag(@user.profilepic.url(:small))%>

享受..............