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

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

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

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

Q&A

解決済

2回答

347閲覧

[Rails] config 配下の設定ファイルで、app 配下の concern 等 のメソッドを使いたい

ttwetateasta

総合スコア3

Ruby on Rails 6

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

0グッド

0クリップ

投稿2021/08/31 10:38

設定ファイル (config/environments/production.rbとか)で、

ruby

1config.force_ssl = true unless module_method

という風に書きたいのです。

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

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

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

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

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

maisumakun

2021/08/31 11:13

module_methodの内容はどのようなものでしょうか?
ttwetateasta

2021/09/01 08:51

request の中身によって、true/falseを返そうとしていましたm(_ _)m
guest

回答2

0

request の中身によって、true/falseを返そうとしていました

それは不可能です。

config/environmentsの中身はサーバ起動時にしか実行されませんので、lambda経由でリクエスト状況を渡してくれるものを除けば、「リクエストごとに設定を変える」という用途に使うことはできません。

投稿2021/09/01 08:56

maisumakun

総合スコア145208

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

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

ttwetateasta

2021/09/01 09:02

無知でした… ご指摘いただきありがとうございます。
guest

0

ベストアンサー

後に述べる理由でお勧めできません……が、どうしても実現したければ、該当ファイルの先頭に以下のように書けば、使えるでしょう。

ruby

1require Rails.root.to_s+'/app/models/concerns/my_concern_module.rb' 2 # もしくはそれではだめならば、 3require File.dirname(File.dirname(__FILE__))+'/app/models/concerns/my_concern_module.rb' 4 # File.dirname を2回重ねているのは、production.rb の階層の数に合わせた。 5 6include MyConcernModule # 該当ファイルにあるmoduleをinclude

試していませんが! (Rails.root が使えるかどうかわからないのは試していないから……)

ただし、その該当ファイルが、Railsを使わない純粋なRubyで書かれていることが条件です。もし、Railsの機構を使っていれば、それが意図通り実行されるかどうかはわかりません……。動かない(Exceptionで落ちる)可能性が高いです。

なお、そのようなモジュールファイルは、app/ 下ではなくて、lib/ 下に置くのが普通だと思います。 app/ 配下のすべてのファイルは、config/ 下の initializers が実行された後に読み込まれるのが前提だと理解しています。

投稿2021/08/31 13:28

MasaSakano

総合スコア188

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

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

ttwetateasta

2021/09/01 08:53

読み込み方法について、大変参考になりました。ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問