所以我想说我有这样的代码:
class PostsController < InheritedResources::Base
# Add before_filter here and devise should handle the redirection if the user is not signed in.
before_filter :authenticate_user!, only: [:vote_up]
def vote_up
begin
current_user.vote_for(@post = Post.find(params[:id]))
redirect_to [@post]
flash[:success] = "You have voted successfully"
rescue ActiveRecord::RecordInvalid
redirect_to [@post]
flash[:error] = "You have already voted"
end
end
end
正在显示“您已成功投票”或“您已投票”的消息。
在我看来,我有:
enter code here
<p id="notice"><%= notice %></p>
<%= @post.embed .html_safe %>
<header>
<h7><%= @post.name %></h7>
</header>
<h8><%= @post.title %></h8>
<article>
<%= @post.content .html_safe %>
<p>
<%= link_to 'Back', posts_path %> |
<%= link_to('Vote for this song!', vote_up_post_path(@post), :method => :post) %></p>
<p><id="notice"><%= notice %></p>
没有骰子。我仍然没有在任何地方收到flash消息。知道我做错了吗?
答案 0 :(得分:2)
您已使用
flash[:success] = "You have voted successfully"
在您的控制器中,您已拨打
<%= notice %>
在您的观点中。您必须在控制器或视图中进行更改。
您可以添加
format.html {redirect_to @post,请注意:'您已成功投票。' }
在您的控制器中,您将收到所需的消息。
答案 1 :(得分:1)
您应该在flash
redirect_to
在你看来
<p>
<%= flash[:success] unless flash[:success].blank? %>
<%= flash[:error] unless flash[:error].blank? %>
</p>
您也可以查看此link
答案 2 :(得分:0)
最好的方法
<% if flash[:notice] %>
<div class="notice"><%= flash[:notice] %></div>
<% end %>
答案 3 :(得分:0)
您的代码如下:<p><id="notice"><%= notice %></p>
您需要<p id="notice"><%= notice %></p>