我正在尝试使用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)。谢谢勘误!
答案 0 :(得分:4)
因此,您似乎不允许使用strong_parameters分配新属性。添加这个以使其更加明显,因为我对于SO点是贪食。 :-P