2016-10-11 8 views
1

私はMichael Hartl's Rails 5チュートリアルをオンラインにしています。私はToy Appの部分にいます。私はシンプルなUser足場を用意しています。新しいユーザーを作成すると、私はショーテンプレートにリダイレクトされますが、フラッシュ通知メッセージのコンテンツは表示されません。Rails 5 ...いいえフラッシュ通知メッセージ

def create 
@user = User.new(user_params) 

respond_to do |format| 
    if @user.save 
    format.html { redirect_to @user, notice: 'User was successfully created.' } 
    end 
end 
end 

ビューコードはここにある:P要素が作成され、適切なCSSスタイルを受信して​​いる

<p id="notice"><%= notice %></p> 

が、メッセージではない次のように

制御コードでありますそれに渡されます。

基本的に、私は私の出力のためにこれを取得しています:

<% if flash[:notice].blank? %> 
    <h1> flash notice is blank </h1> 
<% end %> 

...と私はフラッシュ通知があるというメッセージを取得しています:

<p id="notice"></p> 

私は、ビューにこれを追加しましたブランク。

私はRails 5.0.0.1とRuby 1.3.2です。ありがとうございました。

+0

あなたのCSSスタイルはメッセージに隠されていないか、条件付きで隠されていませんか?このチュートリアルでは、 –

+0

いいえ、scaffold.cssファイルから#noticeスタイルを取得しています。 –

+0

メッセージには条件はありません。 –

答えて

0

これは、私がapplication_controller.rbファイルに対して行った編集と関係があります。私は、新しいユーザーを作成しようとした最初の時間は、私はエラーを受け取っ:

ActionController ::がUserController#でInvalidAuthenticityTokenは、この問題を解決するには

を作成し、私のapplication_controller.rbファイルの2行目に、私はこれを変更私はこの、いわば、私のセッションを '無効' ので、特定のセッション変数は、GEはないと思います

protect_from_forgery with: :null_session 

:これまで

protect_from_forgery with: :exception 

フラッシュメッセージを含め、合格しましたか?

とにかく、この変更により、新しいユーザーをうまく作成できましたが、Flash通知メッセージが表示されていないことがわかりました。

これを解決するために、null_sessionをapplication_controllerファイルの例外に変更してから、新しいユーザーの認証トークンの検証をスキップするusers_controller.rbファイルに新しい行を追加しました。

class UsersController < ApplicationController 
    skip_before_action :verify_authenticity_token 
関連する問題