teratail header banner
teratail header banner
質問するログイン新規登録

質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.30%
Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Q&A

解決済

1回答

1381閲覧

【Rails】--skip-active-storageを指定するとdb:migrateでエラーになる

NCC1701

総合スコア1683

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

0グッド

1クリップ

投稿2020/02/23 04:24

編集2020/02/23 12:51

0

1

前提・実現したいこと

rails new . --database=postgresql --skip-sprockets --skip-turbolinks --skip-test --skip-git --skip-action-cable --skip-action-mailer --skip-active-storage
のように、--skip-active-storageのオプションをつけると、db:migrate時にエラーになってしまいます。

config/application.rbでは後記のソースコードのようにライブラリが自動的にコメントアウトされます。このコメントを外せば、エラーはなくなります。

だとすると、オプションの--skip-active-storageの指定は意味がないのでしょうか?

それとも、オプションを指定したのちは、いわば手作業でコメントアウトを外すのがセオリーなのでしょうか?(ならば、わざわざコメントアウトしてくれなくてもよいような...)

rails new . のあとの処理

sh

1yarn add jquery materialize-css 2mkdir ./app/javascript/stylesheets 3sed -i -e "s!.*ENV.fetch(\"PORT\").*!bind 'tcp://0.0.0.0:3000'!" ./config/puma.rb 4 5rails generate scaffold rent owner:references name:string 6rails generate model owner --migration=false 7sed -i -e "2i self.table_name = 'owners'" ./app/models/owner.rb

発生している問題・エラーメッセージ

rails aborted! NoMethodError: undefined method `active_storage' for #<Rails::Application::Configuration:0x0000565059afa2a8>

該当のソースコード

ruby

1$ cat application.rb 2require_relative 'boot' 3 4require "rails" 5# Pick the frameworks you want: 6require "active_model/railtie" 7require "active_job/railtie" 8require "active_record/railtie" 9# require "active_storage/engine" 10require "action_controller/railtie" 11# require "action_mailer/railtie" 12# require "action_mailbox/engine" 13# require "action_text/engine" 14require "action_view/railtie" 15# require "action_cable/engine" 16# require "sprockets/railtie" 17# require "rails/test_unit/railtie"

補足情報(FW/ツールのバージョンなど)

ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux-musl]
Rails 6.0.2.1
Alpine Linux 3.11.3

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raccy

2020/02/23 07:47

手元のWSL(Ubuntu 18.04LTS)でRuby 2.7.0、Rails 6.0.2.1、DBはsqliteで`--skip-active-storage`を付けて作成し、モデルを一個追加後にdb:migrateしてみましたが、エラーにはなりませんでした。RailsのIssuesも探ってみましたが、同様の問題は報告されていません。環境に強く依存しているのかも知れません。次を確認し、質問に追記していただけませんか? 1. Railsの細かいバージョン(6ではなく6.0.0とか6.0.1とか、四つ目あればそれも) 2. 実行環境の情報(特定OSで発生するなどの環境依存の可能性があるため) 3. PostgreSQL以外でも発生するのかどうか?(sqliteやmysqlなどでは?) 4. rails newした後にやったこと(このファイルを編集した、こういうのをgenerateした等)
NCC1701

2020/02/23 12:45

1. 2.について ruby 2.6.5p114 (2019-10-01 revision 67812) [x86_64-linux-musl] Rails 6.0.2.1 Alpine Linux 3.11.3 3. これからsqliteについては試してみます
guest

回答1

0

自己解決

(おそらく)原因判明しました。
config/environments/development.rbに以下の記述が含まれていました。
(--skip-...を含めない別のアプリからコピーしたため)

+ # Store uploaded files on the local file system (see config/storage.yml for options). + config.active_storage.service = :local + + # Don't care if the mailer can't send. + config.action_mailer.raise_delivery_errors = false + + config.action_mailer.perform_caching = false

投稿2020/02/23 13:44

NCC1701

総合スコア1683

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.30%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問