我从索尼电脑切换到华硕,下载了与索尼相同的程序,并从Bitbucket克隆了我的Rails 4.0.10项目。其他一切的行为都是一样的,但Paperclip莫名其妙地停止了工作,尽管这两个开发环境应该完全相同。我用Paperclip在我的用户模型中添加了一个头像,但现在当我添加头像时,User.create失败了。我试着卸载并重新安装它,但没有什么不同。有回形针经验的人知道可能发生了什么吗?
Gemfile:
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/
# ...
控制器/用户.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 %>
views/users/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" %>
确保您的机器上安装了imagemagik。这不是"捆绑安装"将涵盖的内容。
按照这里的说明
http://www.imagemagick.org/script/install-source.php
或者使用自制软件或其他软件包管理器