【问题标题】:showing entire instance variable in rails views在 Rails 视图中显示整个实例变量
【发布时间】:2013-08-23 22:38:31
【问题描述】:

假设我通过@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>

为什么要显示整个对象?

【问题讨论】:

    标签: ruby-on-rails ruby views partial-views


    【解决方案1】:

    因为= 在行首签名。应该是:

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

    我使用user 作为传递给块的实例变量名称,以提高可读性。

    【讨论】:

    • 是的,但我将@users 作为本地user 在我的部分传递。那么我该如何管理呢?
    • @user1611830 您应该将其传递为users。再看我的回答。
    • 不,然后我收到一个错误方法,告诉我每个方法都不被识别为方法
    【解决方案2】:

    你应该使用这个

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

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

    【讨论】:

    • @MrYoshiji 抱歉,复制粘贴问题 ;)
    • @MrYoshiji 对不起,我想编辑我的,我在里面放了一些东西。很抱歉!
    • 不是故意的也没关系;)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多