1

我在 Rails 3.0 应用程序中使用 Paperclip,以便向用户添加头像,但由于路径关闭,它不会保存图像。这是我得到的:

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”):

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

4

3 回答 3

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))%>
于 2012-04-12T07:15:43.703 回答
1

现在工作!!!

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

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

    <%= form_for @user, :html => **{ :multipart => true }** do |f| %>
    
  2. 在您的 user.rb (或您要添加附件的任何模型)中,制作attr_accessible :photo(或您命名附件的任何名称)

  3. 安装新的 Gem 后总是重启你的服务器。

:) 多谢你们!!!!

于 2012-04-12T16:20:23.787 回答
0

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

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

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

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

于 2012-04-12T07:35:29.110 回答