gpt4 book ai didi

ruby-on-rails - 使用带有 RMagick 处理的 CarrierWave 时出错

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:56 24 4
gpt4 key购买 nike

我正在使用 Rails 4,并尝试上传图像,然后在处理后存储它。

我只使用一个 View ,我希望用户在其中上传图像,我处理图像,将其存储在数据库中,然后使用新处理的图像重新加载页面。

我的模型(user.rb)

class User < ActiveRecord::Base
mount_uploader :image, ImageUploader
end

uploader (image_uploader.rb)

# encoding: utf-8
class ImageUploader < CarrierWave::Uploader::Base

include CarrierWave::RMagick
storage :file

def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end

process :changeImage

def changeImage
manipulate! do |source|
source = source.sepiatone
end
end

Controller (app_main_controller.rb)

require 'Rmagick'

class AppMainController < ApplicationController
def index
# page reload handling when the file uploads
if(params.has_key?("file-input"))
@u= User.new
@u.image = params["file-input"]
if(@u.save)
render js: "alert('SAVED')"
else
render js: "alert('Error while saving image! Try Again!')"
end
# initial page load
else
end
end
end

我使用 image_tag @u.image_url 在我的 View (即索引)中访问图像 uploader

每当我在 image_uploader.rb 中添加任何类型的处理时,我都会不断出现“堆栈级别太深”。如果不添加任何处理,图像会正常上传。

任何想法,任何人?

最佳答案

我遇到了同样的问题。看起来像是 rmagick gem 的问题。

编辑:问题出在案例上。试试这个:

gem 'rmagick', :require => 'RMagick'

另见 this stackoverflow answerthis issuethis issue在 github 上。

我切换到 mini_magick 来修复它。 (不理想,但它现在对我有用。)

uploader 类(注释掉 RMagick):

include CarrierWave::MiniMagick

gem 文件:

gem 'mini_magick'

关于ruby-on-rails - 使用带有 RMagick 处理的 CarrierWave 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22128119/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com