Rails:使用 Jcrop 和回形针裁剪图像后出现重定向问题

Posted

技术标签:

【中文标题】Rails:使用 Jcrop 和回形针裁剪图像后出现重定向问题【英文标题】:Rails: Having issues redirecting after cropping image with Jcrop & paperclip 【发布时间】:2013-05-16 13:50:51 【问题描述】:

我正在尝试为 Paperclip 实现 Jcrop,我已经完成了 99%。我能够裁剪图像并存储它。问题是,在图像被裁剪并存储后,我再次使用最近裁剪的图像进行裁剪操作。所以它要求我裁剪裁剪的图像。我不知道如何摆脱它。我想在图像被裁剪后转到 user_path 而不是再次裁剪。这是我的更新操作中的代码:

  def update
    @user.update_attributes(params[:user])
    if @user.avatar_file_name.nil?
      redirect_to :back
    else
      if params[:user].blank?
        redirect_to user_path(@user)
      else
        render :action => 'crop'
        @user.avatar.reprocess! if :cropping?
      end
    end
  end

如果我有这个,那么图像将不会裁剪。它存储为原始图像,我被重定向到 user_path:

  def update
    @user.update_attributes(params[:user])
    if @user.avatar_file_name.nil?
      redirect_to :back
    else
      if params[:user][:avatar].blank?
        redirect_to user_path(@user)
      else
        render :action => 'crop'
        @user.avatar.reprocess! if :cropping?
      end
    end
  end

【问题讨论】:

你能发布你的裁剪操作吗? 好的,据我了解,您应该使用您的帖子的第二个版本。您总是会看到裁剪视图,因为由于某种原因,您的 params[:user][:avatar] 在裁剪后不会变为空白。按“裁剪”后,您能看到发布的内容吗?那里不应该有 params[:user][:avatar]。 好的。好吧:使用您帖子的第二部分,而不是您的第一部分。按下用户的保存按钮后查看请求的参数。您的代码需要一个 params[:user][:avatar]。有吗? 您上面的评论是用户裁剪图像之后的参数渲染裁剪动作之前你得到什么参数? 你使用的是第一版还是第二版? 【参考方案1】:

这解决了我的问题。它可能非常具体,永远不会帮助任何人,但无论如何这就是答案。感谢@grotori 抽出宝贵时间!

  def update
    @user.update_attributes(params[:user])
    if @user.avatar_file_name.nil?
      redirect_to :back
      elsif !params[:user][:crop_x].blank?
        @user.avatar.reprocess! 
        redirect_to edit_user_path(@user) and return
      else
        render :action => 'crop'
    end
  end

【讨论】:

以上是关于Rails:使用 Jcrop 和回形针裁剪图像后出现重定向问题的主要内容,如果未能解决你的问题,请参考以下文章

在 rails 中使用回形针 3.3.1 进行图像裁剪

在创建图像之前使用 jCrop 和 cloudinary through rails 4 进行裁剪

Rails:回形针和预览?

jCrop 不更新文本字段,Rails 4 应用程序

如何在 Ruby on Rails 中裁剪图像

使用 jcrop 和 java 裁剪图像