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

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

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

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

Q&A

0回答

1880閲覧

initializers/sorcery.rbの設定が反映されない理由

hanzoo

総合スコア28

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

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

0グッド

0クリップ

投稿2017/06/07 11:11

編集2017/06/07 12:26

Railsで作成しSorceryでログイン機能を実装しているアプリケーションの初期設定ファイルinitializers/sorcery.rbに関する質問です。
config.user_config do |user|が重複しており、一つ目のconfig.user_config do |user|の内部で記述した設定が反映されていませんでした。一つ目のconfig.user_config do |user|を削除して記述をまとめると正常に動作させることは出来ました。

一つ目のconfig.user_config do |user|の内部の設定はなぜ反映されなかったのでしょうか。

修正前の初期化ファイルは以下のように記述されていました。

Ruby

1 2Rails.application.config.sorcery.submodules = [:remember_me, :reset_password] 3 4Rails.application.config.sorcery.configure do |config| 5 config.user_config do |user| 6 user.remember_me_for = 1 7 end 8 config.user_config do |user| 9 user.remember_me_token_persist_globally = true 10 user.username_attribute_names = [:login_name] 11 end 12 config.user_class = "User" 13end

追記

修正後の記述は以下のようにしました。
修正前では反映されなかったuser.remember_me_for = 1が反映されました。

Ruby

1Rails.application.config.sorcery.submodules = [:remember_me, :reset_password] 2 3Rails.application.config.sorcery.configure do |config| 4 config.user_config do |user| 5 user.remember_me_for = 1 6 user.remember_me_token_persist_globally = true 7 user.username_attribute_names = [:login_name] 8 end 9 config.user_class = "User" 10end

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

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

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

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

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

gouf

2017/06/07 11:50

config.user_config が2回記述されていますが、その設定内容をひとまとめに、user_config の記述を1度限りにした場合に、動作は変わりますか?
hanzoo

2017/06/07 11:57 編集

はい、動作変わりました。`config.user_config do |user|`の記述をまとめたところ`user.remember_me_for = 1`が反映されました。
moke

2017/06/08 04:07

configが定数だからです。定数は変更不能なので、user_config自体が上書きになります差分更新とかはありません。途中から質問を変えるのはよくないです。
hanzoo

2017/06/08 04:50 編集

mokeさん、回答ありがとうございます。誤解を招く書き方をしてしまって申し訳ないです。質問の内容自体は元から > 一つ目のconfig.user_config do |user|の内部の設定はなぜ反映されなかったのでしょうか。 という内容です。
moke

2017/06/08 08:01

おお、それはすみません。そちらがメインなら、時間があったら細かい部分を説明します。
hanzoo

2017/06/08 13:12

mokeさん、いえいえ!こちらこそすみません!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問