Flash消息(Rails v.4.1.1)Curly Brackets

时间:2014-06-04 19:56:38

标签: ruby-on-rails ruby flash

我正在铁轨上创建博客。每次在页面上创建帖子时,我都希望返回索引页面并看到一条Flash消息,说明"您的帖子已保存"。在布局上我有以下内容:

<body>

<%= flash.each do |key, value| %>
    <p><%= value %></p>
<% end %>


<%= yield %>

</body>

问题是我现在已经在每个页面(索引,新的等)大括号顶部,我不知道为什么。此外,而不仅仅是留言&#34;您的帖子已保存。&#34;。它还显示如下:&#34; {&#34; notice&#34; =&gt;&#34;您的帖子已保存。&#34;}&#34;。这是控制器上的消息保持代码(posts_controller.rb):

def create
        @post = Post.new(post_params)

        if @post.save
            redirect_to posts_path
            flash[:notice] = "Your post was saved."
        else
            render "new"
        end
end

我从Rails开始,感谢您的帮助。

1 个答案:

答案 0 :(得分:4)

请参阅以下更新以获取解释

删除= in&lt;%= flash.each ....%&gt;应该只是&lt;%flash.each .....%&gt;

<% flash.each do |key, value| %>
  <p><%= value %></p>
<% end %>

为了简单起见,当您希望ruby代码在页面上呈现某些内容时,请使用<%= %> ex :显示您将使用的当前时间<%= Time.now %> 。对于视图中没有文本呈现的视图中的设置变量等其他内容,请使用<% %>

例如,假设我要分配一个等于当前时间的变量,以便我可以在视图中使用它,我会使用<% time = Time.now %>然后我可以在{{1}页面上显示该时间}。

<%= time %>