ruby-on-rails - Flash 消息 (Rails v.4.1.1) 花括号

标签 ruby-on-rails ruby flash

我正在 Rails 上创建博客。每次在 页面上创建帖子时,我都想返回索引 页面并看到一条闪现消息“您的帖子已保存”。在布局上我有以下内容:

<body>

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


<%= yield %>

</body>

问题是我现在在每个页面(索引、新等)的顶部都有大括号,我不知道为什么。此外,不仅仅是一条消息“您的帖子已保存。”。它还显示以下内容:“{“通知”=>“您的帖子已保存。”}”。这是在 Controller (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,感谢您的帮助。

最佳答案

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

删除 <%= flash.each.... %> 中的 = 应该只是 <% flash.each.....%>

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

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

例如,假设我想分配一个等于当前时间的变量,以便我可以在下面的 View 中使用它,我会使用 <% time = Time.now %>然后我可以用 <%= time %> 在页面上显示那个时间.

<% time = Time.now %>

<p>The current time is <%= time %>.</p>

关于ruby-on-rails - Flash 消息 (Rails v.4.1.1) 花括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24046426/

相关文章:

mysql - 你能用rails中的正则表达式进行where查找吗?

ruby-on-rails - 无法使用 Factory Girl 和 rspec 更新关联对象的属性

mysql - 如何检查用户是否存在于数据库中

ruby - 结构从读取器和哈希访问器返回不同的东西

flash - Adobe AIR 512x512 图标?

android - Android 设备上是否需要 Adob​​e Air 才能运行 Flash 创建的 APK?

ruby-on-rails - 为什么坚持?在 ActiveRecord::Rollback 之后返回 true?

ruby-on-rails - Rails 应用试图更新不存在的列

flash - FLASH CS6 AS3未调用库中的声音

ruby-on-rails - Memcached 总是错过(rails)