配置信息
rails version 6.0
ruby version 2.7.0
gem 'image_processing', '~> 1.2'
Run Code Online (Sandbox Code Playgroud)
存储.yml
local:
service: Disk
root: <%= Rails.root.join("storage") %>
Run Code Online (Sandbox Code Playgroud)
发展.rb
config.active_storage.service = :local
Rails.application.routes.default_url_options[:host] = 'localhost:3000'
config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
Run Code Online (Sandbox Code Playgroud)
只有当我使用service= :local. 使用 AWS S3 配置,使用:amazon它可以正常工作。
用户.rb模型
has_one_attached :avatar
#throwing exception
def avatar_urls
{
original: avatar.service_url
} if avatar.attachment
end
Run Code Online (Sandbox Code Playgroud)
访问时抛出avatar_urls异常( URI::InvalidURIError (bad URI(is not URI?): nil) )。但是,如果我将avatars_url方法更改为以下方法,则效果很好。
#working method
def avatar_urls
{
thumbnail: url_for(avatar.variant(resize: "100x100").processed)
} …Run Code Online (Sandbox Code Playgroud) 我使用 postgres 数据库创建了一个 rails 应用程序。我正在使用 postgis 扩展进行地理查询。该应用程序在我的开发(本地)机器上成功运行,但在我运行时在 heroku 服务器上部署我的代码后,heroku run rake db:migrate它抛出一个错误,说undefined method geometry for ActiveRecord ConnectionAdapters PostgreSQL. 我在某些迁移中使用几何数据类型来存储纬度和经度。
请注意,我还在heroku 上创建了PostGIS 扩展。并且成功执行不包含几何数据类型的迁移。我的文件是:
文件
ruby "2.3.0"
gem 'rails', '>= 5.0.0.beta3', '< 5.1'
gem 'pg', '~> 0.18'
gem 'rgeo'
gem 'rgeo-activerecord', "~> 5.0.0.beta"
gem "activerecord-postgis-adapter", "~> 4.0.0.beta2"
Run Code Online (Sandbox Code Playgroud)
psql --version 是:9.5.2在heroku服务器上
psql --version 是:9.4.7在本地服务器上
数据库.yml
default: &default
adapter: postgis
encoding: unicode
pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
development:
<<: *default
database: ad_development …Run Code Online (Sandbox Code Playgroud)