【问题标题】:Rails: Paperclip gem no longer works after switching computersRails:Paperclip gem 在切换计算机后不再工作
【发布时间】:2014-11-09 19:25:06
【问题描述】:

我从索尼电脑切换到华硕电脑,下载了与索尼电脑相同的程序,并从 Bitbucket 克隆了我的 Rails 4.0.10 项目。其他一切行为都相同,但 Paperclip 莫名其妙地停止了工作,尽管两个开发环境应该完全相同。我使用 Paperclip 将头像添加到我的用户模型,但现在当我附加头像时 User.create 失败。我尝试卸载并重新安装它,但这没有任何区别。有回形针经验的人知道可能发生了什么吗?

宝石文件:

gem "paperclip", :git => "git://github.com/thoughtbot/paperclip.git"
# ...

models/user.rb

class User < ActiveRecord::Base

  has_attached_file :avatar, :styles => { :large => "500x500", :medium => "300x300>", :thumb => "50x50!" }, :default_url => "/images/:style/missing.png"
  validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
  # ...

controllers/users.rb

class UsersController < ApplicationController

  def create
    # ...
    if @user.save
      render :action => "crop"
    else
      flash[:notice] = "Failed"
      redirect_to new_user_path
    end
  end

  private

    def user_params
      params.require(:user).permit(:name, :avatar)
    end

views/users/new.html.erb

  <%= form_for @user, :url => users_path, :html => { :multipart => true } do |f| %>
    <%= f.text_field :name, :placeholder => "Name" %>
    <br>
    <%= f.label :display_picture %>
    <%= f.file_field :avatar %>
    <br>
    <%= f.submit "Submit", class: "btn btn-primary" %>
  <% end %>

视图/用户/crop.html.erb

<% content_for(:head) do %>
<%= stylesheet_link_tag "jquery.Jcrop" %>
<%= javascript_include_tag "jquery.Jcrop.min" %>
<script type="text/javascript" charset="utf-8">
ready = $(function() {
  $("#cropbox").Jcrop();
});
</script>
<% end %>

$(document).ready(ready);
$(document).on('page:load', ready);

<%= image_tag @user.avatar.url(:large), :id => "cropbox" %>

【问题讨论】:

  • 你安装了 ImageMagick 吗?

标签: javascript ruby-on-rails ruby ruby-on-rails-4 paperclip


【解决方案1】:

确保您的机器上安装了 imagemagick。这不是“捆绑安装”将涵盖的内容。

按照此处的说明进行操作

http://www.imagemagick.org/script/install-source.php

或者使用自制软件或其他包管理器

【讨论】:

  • 你说得对,我需要安装 imagemagick。但是现在 image_tag @thing.avatar.url(:size) 只显示图像的名称,而不是图像本身。知道为什么会这样吗?
  • 试试@thing.avatar.image_url(:size)
  • 返回“#<:attachment:0x00000004e0e558> 的未定义方法 `image_url'”
  • 抱歉,试试@thing.avatar_url
  • 嗯,返回“未定义的方法avatar_url”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-19
  • 2016-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-04
  • 2016-03-08
相关资源
最近更新 更多