2011-12-03 11 views
1

私はsexes_controllerで "create"アクションを送信しました。実際にページビュー/ results/indexにリダイレクトされました。提出されたが、現在はフラッシュメッセージは、私が仮定どのようにしている、(ページ、すなわち、フォームがから提出された)、私は/インデックスビュー/結果の下部にRails:同じページのフォームにリダイレクトされました。フラッシュメッセージが表示されません。

<%= flash[:notice] %> 

をやっているにもかかわらず、表示されませんあなたはそれをやろうとしている。

フラッシュメッセージが表示されていないようなキャッシングがあるので、それはありますか?どのようにそれを回避するための任意のアイデア?

更新

それはより複雑であるかもしれない考え、私は/バックビュー/結果で、結果コントローラ

@flashbash = Sex.find(params[:id]) 

のindexアクションでフラッシュメッセージを取得しようとしてきましたインデックス

<%= if @flashbash flash[:notice] %> (I think this code is wonky) 

注:これを試しましたが動作しませんでした。それは言ったCouldn't find Sex without an ID

どのように私はこれを修正することができますアイデア?

答えて

5

通常、フラッシュはアプリケーションのレイアウトファイルにレンダリングされます。これにより、潜在的にフラッシュメッセージを持つ可能性のあるすべてのビューに<%= flash [:notice]%>を出力する必要がなくなります。

なぜ表示されないのかは、あなたのflash [:notice]変数に何かを表示することを確認していることを確認します。コントローラのcreateアクションの例は次のようになります。http://guides.rubyonrails.org/action_controller_overview.html#the-flash

:ここではフラッシュメッセージの

# app/controllers/sex_controller.rb 
def create 
    @sex = Sex.new(params[:sex]) 
    if @sex.save 
    flash[:notice] = "Saved successfully" 
    redirect_to @sex # This redirects to the show action, where the flash will be displayed 
    else 
    flash[:error] = "There were errors..." 
    render :action => :new # This displays the new form again 
    end 
end 

# app/layouts/application.html.erb 
<html> 
    ... 
    <%= flash[:notice] %> 
    <%= flash[:error] %> 
    <%= yield %> 
    ... 
</html> 

詳しい情報

関連する問題