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

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

新規登録して質問してみよう
ただいま回答率
85.35%
Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

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

Q&A

解決済

2回答

1552閲覧

Railsでflashが表示されません

退会済みユーザー

退会済みユーザー

総合スコア0

Windows 10

Windows 10は、マイクロソフト社がリリースしたOSです。Modern UIを標準画面にした8.1から、10では再びデスクトップ主体に戻され、UIも変更されています。PCやスマホ、タブレットなど様々なデバイスに幅広く対応していることが特徴です。

Ruby

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

Windows

Windowsは、マイクロソフト社が開発したオペレーティングシステムです。当初は、MS-DOSに変わるOSとして開発されました。 GUIを採用し、主にインテル系のCPUを搭載したコンピューターで動作します。Windows系OSのシェアは、90%を超えるといわれています。 パソコン用以外に、POSシステムやスマートフォンなどの携帯端末用、サーバ用のOSもあります。

Ruby on Rails

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

0グッド

0クリップ

投稿2020/05/11 05:44

編集2020/05/13 01:41

前提・実現したいこと

Ruby on railsで会員登録出来た場合と失敗した場合で別のフラッシュを表示させたいです。

発生している問題

会員登録画面でsubmitボタンを押してもフラッシュが表示されない。

該当のソースコード

app/controllers/home_controller.rb

def create @user = User.new(user_params) if @user.save flash[:notice] = '会員登録完了あなたは#{@user.id}人目のサービス利用者なので貢献度を#{@user.id}ポイントプレゼントします(´・ω・`)' redirect_to("/") else flash[:alert] = "会員登録失敗" render action: :new end end

new.html.erb

<% @user = User.new unless @user %> <%= form_for @user,:url => {controller: "home", action: "create" } do |f| %> <p>名前</p> <%= f.text_field :name %> <p>user_id</p> <%= f.text_field :user_id %> <p>メールアドレス</p> <p>*実在しないメールアドレスを記入した場合使える機能に制限が設けられる場合があります。</p> <%= f.email_field :email %> サイト作成者のメルマガに登録<%= f.radio_button :mailmagazin, "登録する", checked: true %>する<%= f.radio_button :mailmagazin, "登録しない" %>しない <p>パスワード</p> <%= f.text_field :password %> <br> <%= f.submit "新規登録!" %> <% end %>

create.html.erb

<p>submitボタンを押すと遷移する画面</p> <% if flash[:notice].present? %> <div class="notice"><%= flash[:notice] %></div> <% end %> <% if flash[:alert].present? %> <div class="alert"><%= flash[:alert] %></div> <% end %>

補足情報

Windows 10 home
Ruby on rails 5.2.4
ruby 2.6.6
PostgreSQL 12.2

失礼な点があるかもしれませんがどうぞよろしくお願いします。

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

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

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

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

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

guest

回答2

0

載っているviewにはflashを表示させる部分がありません。
この外にある?
app/views/layout/application.html.erb と
もしあるなら
そこで取り込んでいる partialなviewを確認してください。
こんな記述があるかどうか`
<% if flash[:error].present? %>

<div class="error"><%= flash[:error] %></div> <% end %>`

投稿2020/05/11 07:29

winterboum

総合スコア23567

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

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

退会済みユーザー

退会済みユーザー

2020/05/11 07:34

flashを表示させるコードを書いていなかったので追加しましたがflashは表示されませんでした… 回答ありがとうございます。
winterboum

2020/05/11 07:36

どこに書きました?
退会済みユーザー

退会済みユーザー

2020/05/11 07:38

新規登録画面で新規登録ボタンを押すと遷移するapp/views/home/create.html.erbに書きました!
退会済みユーザー

退会済みユーザー

2020/05/11 07:48

的はずれなことをしていたらすみません… どこに書けば良いのでしょうか? application.html.erbのbodyにも記述しましたがflashは表示されませんでした。
winterboum

2020/05/11 07:56

いえ、それで良いと思うのに、なぜだめなんだ、、、、 はて です。 念の為にview全文を載せてください
退会済みユーザー

退会済みユーザー

2020/05/11 08:00

なるほどそういうことだったんですね。勘違いしていました汗 viewファイルの全文を追記しておきました。
退会済みユーザー

退会済みユーザー

2020/05/11 08:03

3行です。
winterboum

2020/05/11 09:20

このviewが開いているということは確認できてますか?
退会済みユーザー

退会済みユーザー

2020/05/11 09:37

新規登録ボタンを押すと http://localhost:3000/kanryou に遷移します。(flashは表示されない) routes.rbでは post 'kanryou' => 'home#create' と定義されていますのでcreate.html.erbが開いているのだと思います。 また、PowerShellに Rendering home/create.html.erb within layouts/application とログが表示されているのでこのviewが開いていると思います。
winterboum

2020/05/11 09:50

、、、、 やはり 「はて」 です。すみません
退会済みユーザー

退会済みユーザー

2020/05/11 09:53

いえいえ!ここまで手伝って頂き感謝です! もう少し調べてみて出来なければ別のやり方を考えてみます。
guest

0

ベストアンサー

解決しました!
解決した理由が明確にはわからないのでやったことを羅列します。

application.html.erbに下記を追記
<% if flash[:notice].present? %>
<div class="notice"><%= flash[:notice] %></div>
<% end %>
<% if flash[:alert].present? %>
<div class="alert"><%= flash[:alert] %></div>
<% end %>

Gemfileに下記を追記
gem 'rails-i18n'

new.html.erbに下記を追記
<% @user.errors.full_messages.each do |message| %>
<%= message %>
<% end %>

どれかが要因だったと思います!

投稿2020/05/13 05:06

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問