【问题标题】:How to map more than one Attribute with ActiveRecord?如何使用 ActiveRecord 映射多个属性?
【发布时间】:2011-03-15 17:56:47
【问题描述】:

如果我在控制台中输入

u = User.first
u.friends(&map:username)

我得到["Peter", "Mary", "Jane"] 但我也想显示生日,那我该怎么做?我试过了

u.friends(&map:username, &map:birthday)

但这不起作用。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-4 activerecord


    【解决方案1】:

    使用 ActiveRecord >= 4,您可以简单地使用:

    u.friends.pluck(:username, :birthday)
    

    【讨论】:

      【解决方案2】:

      您可以使用替代块语法:

      u.friends.map{|f| [f.username, f.birthday]}
      

      这将给出一个数组数组。

      u.friends.map{|f| "#{f.username} - #{f.birthday}"}
      

      会给你一个字符串数组。你可以从那里做很多事情。

      【讨论】:

        【解决方案3】:

        试试

        u.friends.map {|friend| [friend.username, friend.birthday]}
        

        & 语法只是底层 Ruby 方法的简写。

        【讨论】:

          猜你喜欢
          • 2017-09-25
          • 1970-01-01
          • 2014-03-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多