在rails上声明一个变量ruby

时间:2014-03-20 04:16:20

标签: ruby-on-rails variables declare

给出的例子中

http://guides.rubyonrails.org/getting_started.html

我对变量“评论”感到困惑。

原始版本是

<h2>Comments</h2>
<% @post.comments.each do |comment| %>
  <p>
    <strong>Commenter:</strong>
    <%= comment.commenter %>
  </p>

  <p>
    <strong>Comment:</strong>
    <%= comment.body %>
  </p>
<% end %>

在这个版本中,我可以理解“评论”来自|评论|

然后,在第7节中,这部分变为

<h2>Comments</h2>
<%= render @post.comments %>

在app / views / comments / _comment.html.erb中 代码是

<p>
  <strong>Commenter:</strong>
  <%= comment.commenter %>
</p>

<p>
  <strong>Comment:</strong>
  <%= comment.body %>
</p>

然后我感到困惑。 “评论”在哪里宣布?

是否有一个教程介绍如何在rails上的ruby中声明变量?

非常感谢。

1 个答案:

答案 0 :(得分:3)

This article应该清除它。它的核心是

<% render @post.comments %>

会做与

相同的事情
<% @post.comments.each do |comment| %>
  <%= render partial: 'comments/comment', locals: { comment: comment } %>
<% end %>

部分模板中的变量commentrender声明,由locals哈希触发。这篇文章进一步解释了你如何从前者获得后者的魔力。