Papercrop不保存裁剪图像

时间:2015-05-16 17:42:18

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

我正在尝试使用papercip with paperclip来允许用户裁剪他们的照片。我已经按照文档并在Github上引用了测试应用程序。裁剪视图功能很好,当我提交表单时,它保存图像就好了,它只是图像是原始大小(未裁剪)。

我确信我错过了一些明显的步骤,所以我希望有人可以指出我正确的方向!!

模型

class Asset < ActiveRecord::Base
  has_attached_file :photo,
                    :styles => { :medium => "300x300>", :thumb => "100x100>", :large => "800x350#" },
                    :url  => "/images//:id/:styles/:filename"
  crop_attached_file :photo
  validates_attachment_content_type :photo, :content_type => /\Aimage\/.*\Z/
end

控制器

  def create
    @asset = Asset.new(asset_params)
    @asset.provider_id = @provider.id

    if @asset.save
      render 'crop'
    else
      render 'new'
    end
  end

  def update
    @asset = Asset.find(params[:id])

    if @asset.update_attributes(asset_params)
      redirect_to @provider
    else
      render 'edit'
    end
  end

  def crop
    @asset = Asset.find(params[:id])
  end

crop.html.erb

<%= form_for [@provider, @asset] do |f| %>
<%= f.cropbox :photo %>
<%= f.crop_preview :photo %>
<%= f.submit 'Save' %>
<% end %>

路线

  resources :providers do
    resources :assets do
      post 'crop', :on => :member
    end
  end

的application.js

//= require jquery
//= require jquery_ujs
//= require jquery.jcrop
//= require papercrop
//= require bootstrap
//= require turbolinks
//= require_tree .

感谢您花时间尝试帮助这个菜鸟!!

我心不在焉地忘记将papercrop包含在我的strong_parameters中。这些是(:photo_original_w,:photo_original_h,:photo_box_w,:photo_crop_x,:photo_crop_y,:photo_crop_w,:photo_crop_h,:photo_aspect)。谢谢勘误!

1 个答案:

答案 0 :(得分:4)

因此,您似乎不允许使用strong_parameters分配新属性。添加这个以使其更加明显,因为我对于SO点是贪食。 :-P