Ruby on rails NoMethodError:未定义的方法`数据存储';对于main:Object
我使用蜻蜓宝石将图像上传到我的应用程序,我还尝试将其链接到S3。但是,当我将其部署到heroku时,我遇到以下错误:Ruby on rails NoMethodError:未定义的方法`数据存储';对于main:Object,ruby-on-rails,Ruby On Rails,我使用蜻蜓宝石将图像上传到我的应用程序,我还尝试将其链接到S3。但是,当我将其部署到heroku时,我遇到以下错误: NoMethodError: undefined method `datastore' for main:Object /config/initializers/dragonfly.rb:4:in `<top (required)>' 我还将ENV直接添加到heroku 干杯 我以前没有实际使用过Dragonfly,但看看您的代码,我认为您遇到的错误是因为您调用的数
NoMethodError: undefined method `datastore' for main:Object
/config/initializers/dragonfly.rb:4:in `<top (required)>'
我还将ENV直接添加到heroku
干杯 我以前没有实际使用过Dragonfly,但看看您的代码,我认为您遇到的错误是因为您调用的数据存储超出了Dragonfly的范围,除非Dragonfly有一个全局混合,将
数据存储
方法添加到应用程序中
从本质上讲,稍微重新组织一下应该可以为您解决这个问题。
你能试试吗
require 'dragonfly'
# Configure
Dragonfly.app.configure do
if Rails.env.production?
datastore :s3,
bucket_name: ENV['S3_BUCKET'],
access_key_id: ENV['S3_KEY'],
secret_access_key: ENV['S3_SECRET'],
region: ENV['S3_REGION'],
url_scheme: 'https'
else
datastore :file,
root_path: Rails.root.join('public/system/dragonfly', Rails.env),
server_root: Rails.root.join('public')
end
plugin :imagemagick
secret "baaa65a6761943c5b52bfb927ffbe193bcb03858bf1bd73fa3d655f8208a1c39"
url_format "/media/:job/:name"
#datastore :file,
#root_path: Rails.root.join('public/system/dragonfly', Rails.env),
#server_root: Rails.root.join('public')
end
# Logger
Dragonfly.logger = Rails.logger
# Mount as middleware
Rails.application.middleware.use Dragonfly::Middleware
# Add model functionality
ActiveSupport.on_load(:active_record) do
extend Dragonfly::Model
extend Dragonfly::Model::Validations
end
基本上,这使您的数据存储访问器在Dragonfly的范围内。
让我知道这是否有效。先生,您是一位传奇人物。就这样!谢谢您
require 'dragonfly'
# Configure
Dragonfly.app.configure do
if Rails.env.production?
datastore :s3,
bucket_name: ENV['S3_BUCKET'],
access_key_id: ENV['S3_KEY'],
secret_access_key: ENV['S3_SECRET'],
region: ENV['S3_REGION'],
url_scheme: 'https'
else
datastore :file,
root_path: Rails.root.join('public/system/dragonfly', Rails.env),
server_root: Rails.root.join('public')
end
plugin :imagemagick
secret "baaa65a6761943c5b52bfb927ffbe193bcb03858bf1bd73fa3d655f8208a1c39"
url_format "/media/:job/:name"
#datastore :file,
#root_path: Rails.root.join('public/system/dragonfly', Rails.env),
#server_root: Rails.root.join('public')
end
# Logger
Dragonfly.logger = Rails.logger
# Mount as middleware
Rails.application.middleware.use Dragonfly::Middleware
# Add model functionality
ActiveSupport.on_load(:active_record) do
extend Dragonfly::Model
extend Dragonfly::Model::Validations
end