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

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

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

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

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

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

Q&A

解決済

1回答

2817閲覧

Ruby on Rails:deviseで作成したログインページのviewの編集が反映されない

frusciante

総合スコア8

Ruby on Rails 5

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

Devise

Deviseとは、Ruby-on-Railsの認証機能を追加するプラグインです。

Ruby on Rails

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

1グッド

0クリップ

投稿2020/03/14 09:06

編集2020/03/14 09:10

前提・実現したいこと

現在、Ruby on Railsでアプリ開発をしております。

ログインページのviewを編集しようと思い、
app/views/users/sessions/new.html.haml
のコードを編集してみたのですが、ページに反映がされません。

お手数ですが、ご助言いただけますと幸いでございます。

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

表示ページキャプチャ

現状、ログインページについては、deviseで作成して以降、特にhamlを編集したり、追加でcss(scss)を当てたりはしておりません。

該当のソースコード

・〜/app/views/users/sessions/new.html.haml

haml

1%h2 Log in 2= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| 3 .field 4 = f.label :email 5 %br/ 6 = f.email_field :email, autofocus: true, autocomplete: "email" 7 .field 8 = f.label :password 9 %br/ 10 = f.password_field :password, autocomplete: "current-password" 11 - if devise_mapping.rememberable? 12 .field 13 = f.check_box :remember_me 14 = f.label :remember_me 15 .actions 16 = f.submit "Log in" 17= render "users/shared/links"

試したこと

①hamlファイルだけ編集してみる。

試しに、該当のhamlファイルの最初に
%h2 Log in
を追記してみたのですが、ページには反映されませんでした。

・〜/app/views/users/sessions/new.html.haml

haml

1%h2 Log in 2%h2 Log in 3= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| 4 .field 5 = f.label :email 6 %br/ 7 = f.email_field :email, autofocus: true, autocomplete: "email" 8 .field 9 = f.label :password 10 %br/ 11 = f.password_field :password, autocomplete: "current-password" 12 - if devise_mapping.rememberable? 13 .field 14 = f.check_box :remember_me 15 = f.label :remember_me 16 .actions 17 = f.submit "Log in" 18= render "users/shared/links"

######②config/initializers/devise.rbを編集してみる。
下記リンクの記事を参考に、
config/initializers/devise.rb の
config.scoped_views = false の記述箇所のコメントアウトを外し、
config.scoped_views = true に編集しましたが、haml編集内容はページに反映されませんでした。
記事リンク

・devise.rb
※コードの記述量が多く質問投稿ができなかったので、編集した箇所のみ記載いたします。

~~(省略)~~ # ==> Scopes configuration # Turn scoped views on. Before rendering "sessions/new", it will first check for # "users/sessions/new". It's turned off by default because it's slower if you # are using only default views. config.scoped_views = true ~~(省略)~~

######③views以下に「devise」ディレクトリが無いか確認する。
以下の記事に
「ログイン画面:app/views/devise/sessions/new.html.erb」
とあったので、該当のファイルを探してみましたが、views以下に「devise」ディレクトリはありませんでした。
記事リンク

###補足情報
ログインページに関して、表示の編集はできないのですが、機能としてのログイン・ログアウトは行えている状況です。

###開発環境
ruby 2.5.1
Rails 5.2.4.1

s.k👍を押しています

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

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

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

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

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

guest

回答1

0

自己解決

以下記事を参考に、
config/initializers/devise.rb の
config.scoped_views = false の記述箇所のコメントアウトを外し、
config.scoped_views = true に修正後、
budle installし(budle installは必要かどうか分からなかったのでコマンド打ちました...)、
改めて、rails s でサーバー再起動したところ、viewの変更はページに反映されていました。

参考記事リンク
※該当の解説箇所
「/users/sign_inにアクセスすると Gem にパッケージングされてる View を呼び出してます。これはデフォルトのスコープがapp/view/devise配下を探しにいってるためです。」

ログを確認したところ、確かに、修正前は
Rendering /Users/owner/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/devise-4.7.1/app/views/devise/sessions/new.html.erb within layouts/application
が表示されており、意図したviewファイルは呼び出されていませんでした。

投稿2020/03/14 15:00

frusciante

総合スコア8

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問