1

假设我得到所有用户@users = User.all,那么在我的部分我有一些循环

%ul
        = users.each do |index|
          = content_tag(:li,index.name)

问题是我得到了这个输出

<ul>
    <li>
        Administrator //correct user name 
    <li>
    [#&lt;User id: 1, email: "admin@local.host", encrypted_password: "$2a...",...;]
</ul>

为什么显示整个对象?

4

2 回答 2

4

你应该使用这个

    %ul
      - users.each do |user|
        =content_tag(:li, user.name)

-和之间的区别在于=第一个不会输出,而第二个会输出。因此,- = users.each do |user|渲染了整个实例变量(精确地作为本地传递)

于 2013-08-21T14:08:31.760 回答
0

因为=在行的开头签到。它应该是:

%ul
  -users.each do |user|
    =content_tag(:li, user.name)

我用作user传递给块的实例变量名称,以获得更好的可读性。

于 2013-08-21T14:00:20.150 回答