アプリケーションのフラッシュ メッセージに問題があります。実際、私のアプリケーションでは、ユーザー認証にデバイスを使用し、Ruby 1.9.3 と Rails 3.2.2 でアプリケーションを使用しました。
ユーザーがログインし、ログアウトして新しいアカウントにサインアップすると、デバイスの flash[:notice] は正常に動作します。
Rails では、flash[:notice] と flash[:alert] がデフォルトの flash メッセージです。
フラッシュ メッセージは、ページのリロード時、またはユーザーが 1 つのページから別のページに否定したときに 1 回だけ表示されます。
問題は、ユーザーがログインしているときにデバイスの flash[:notice] が表示されることですが、ページをリロードすると flash[:notice] が表示されますが、レールでは flash[:notice] が 1 回だけ表示されます。
実際の問題は、新しい投稿を作成しようとすると、ショーページにリダイレクトされ、フラッシュメッセージ用のヘルパーメソッドを作成し、このメソッドをアプリケーションレイアウトから呼び出してフラッシュメッセージを表示することです。
コントローラの create メソッドで
def create
@asset = Asset.new(params[:asset])
@asset.user_id = current_user.id
respond_to do |format|
if @asset.save
format.html { redirect_to @asset, alert: 'Asset was successfully created.' }
format.json { render json: @asset, status: :created, location: @asset }
else
format.html { render action: "new" }
format.json { render json: @asset.errors, status: :unprocessable_entity }
end
end
end
フラッシュ メッセージを表示するヘルパー メソッド
FLASH_TYPES = [:error, :warning, :success, :message,:notice,:alert]
def display_flash(type = nil)
html = ""
if type.nil?
FLASH_TYPES.each { |name| html << display_flash(name) }
else
return flash[type].blank? ? "" : "<div class=\"#{type}\"><p>#{flash[type]}</p> </div>"
end
html.html_safe
end
私はアプリケーションレイアウトからこのメソッドを呼び出しました
= display_flash
flash[:alert]、flash[:error]、flash[:message] を試しましたが、ビュー ページにメッセージが表示されず、flash_message という gem を試しましたが、これも flash[:notice] のみが表示されます
この問題を解決するのを手伝ってください