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

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

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

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

Devise

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

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

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

Q&A

解決済

1回答

3379閲覧

devise機能を導入してファイルの編集が出来ない

yume0409

総合スコア45

Ruby on Rails 5

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

Devise

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

Haml

Haml(HTML abstraction markup language)は、HTML/XHTMLを効率的に記述するためのマークアップ言語および記法です。

Ruby

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

1グッド

1クリップ

投稿2020/01/15 10:45

Ruby on Railsでdevise機能を導入しました。
gemファイルに必要事項を記載した後、

rails g devise:install
rails g devise user
rails db:migrate
rails g devise:views users

を順番に実行し、再起動しました。
hamlで作っているので

rails haml:erb2haml

このコマンドでhamlに変換しました。
ここまで終わったら一度編集出来ました。
編集出来たのを確認して、一番メインのビューにログインボタン、新規登録ボタンを作成するのを
忘れていたのでlink_toで作成しました。
作成して再びログイン、新規登録ビューを作成しようと思ったら何故か編集できませんでした。
ちなみにscssはちゃんと反映されます。
原因が全く分かりません。
後、パスワードの文字数制限が6..128までの設定になっていたので、8..16に変更しました。
nameカラムが必要でしたので、追加しました。
試しに新規登録のビューファイル全て消して、そのビューをリロードしても消されることなく、残ってます。
これは他のファイルが邪魔してるってことでしょうか?
触っているファイルはviews/users/registrations/new.html.hamlです。
ご回答お願いします。

shinoharat👍を押しています

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

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

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

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

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

shinoharat

2020/01/16 00:13

「編集できない」というのはどういう意味でしょうか? ・エディタで開くと読取専用モードになって中身を変えられない ・書き換えは出来るけど保存しようとするとエラーになる ・書き換えも保存も出来るけど、ブラウザで動作確認したら、変更が反映されていなかった ・その他?
yume0409

2020/01/16 02:27

情報少なくてすみません。 3つ目の書き換えも保存も出来るけど、ブラウザで動作確認したら、変更が反映されていなかった。 です。 変更が反映されてないので、試しに全て消してみて、リロードすると消したのにも関わらず全く消えてなかったのです… 編集するファイルが間違っているのか定かではありませんが、ファイル名をちゃんと見ながらやってるので、間違っていないと思います。
shinoharat

2020/01/16 04:27

routes.rb を見せてもらえませんか?
yume0409

2020/01/16 04:28

``` Rails.application.routes.draw do devise_for :users root 'tweets#index' resource :tweets, only: [:new, :create] end ``` お願いします!
guest

回答1

0

ベストアンサー

おそらくですが、devise は app/views/users ではなく app/views/devise の view を探しに行っているのだと思います。
二通りの修正方法があります。

方法1

view のテンプレートを生成するときに、

rails g devise:views users

というコマンドを使われているようですが、これは devise のモデルが複数あるとき(例えば User と Admin に分けてる場合など)のやり方です。

もし devise のモデルが User しかないなら、

rails g devise:views

としてください。
(ファイルは app/views/devise の下に生成されます)

方法2

もう一つ手段があります。

view のフォルダ構成は今のまま変えずに、
config/initializers/devise.rb の設定を config.scoped_views = true に変更し、
railsサーバーを再起動してみてください。

そうすると、devise が app/views/users を参照するようになるはずです。

投稿2020/01/16 04:52

shinoharat

総合スコア1676

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

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

yume0409

2020/01/16 05:01

ご丁寧にありがとうございます! 方法1で反映されました。 先ほどまで使っていたusersはフォルダーごと削除しても大丈夫でしょうか? コマンド打つ必要ありますか?
shinoharat

2020/01/16 05:23

解決して何よりです。 不要な view は、 ``` rails destroy devise:views users ``` で一気に削除できます。 フォルダを手動で削除したとしても、別に問題はありません。
yume0409

2020/01/16 05:40

ありがとうございました! 助かりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問