小编Imr*_*mad的帖子

URI::InvalidURIError(错误的 URI(不是 URI?):nil)Active Storage service_url

配置信息

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)

ruby-on-rails rails-activestorage ruby-on-rails-6

11
推荐指数
2
解决办法
5081
查看次数

ActiveRecord::ConnectionAdapters::PostgreSQL 的未定义方法`geometry'

我使用 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)

postgresql postgis ruby-on-rails heroku

2
推荐指数
1
解决办法
1463
查看次数