gpt4 book ai didi

ruby-on-rails - store_path 中的 Carrierwave : error with model. id

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

我正在尝试编写一种方法来在 ruby​​ worker 中存储来自给定 url 的图像。它出现在我的 Rails 应用程序中,我在其中显示对象图像。这是我想出的:

@message = Message.create!
my_uploader = PhotoUploader.new
photo = open(image_url)
@message[:photo] = my_uploader.store!(photo)
@message[:photo] = my_uploader.filename
@message.save!

照片 uploader :

def store_dir
Rails.env.production? ? (primary_folder = "production") : (primary_folder = "test")
"#{primary_folder}/media/#{model.id}"
end

消息类:

class Message < ActiveRecord::Base
attr_accessible :content, :photo, :user_id
mount_uploader :photo, PhotoUploader
end

model.id返回存储路径错误。模型保存后还是nil,文件存放在#{primary_folder}/media

最佳答案

我认为这是因为您没有从模型中调用 store!,这就是 model.id 不起作用的原因,因为 modelnil

这可能会为你做:

@message = Message.create!
photo = open(image_url)
@message.photo = PhotoUploader.new
@message.photo.store!(photo)
@message.photo = @message.photo.filename
@message.save!

我在 Rails 控制台中尝试了这个,@message[:photo].store!(photo) 给出了同样的错误,但是 @message.photo.store!(photo ) 有效。

关于ruby-on-rails - store_path 中的 Carrierwave : error with model. id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7446197/

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