【问题标题】:ActiveModel table - has_many but one default recordActiveModel 表 - has_many 但一个默认记录
【发布时间】:2014-08-22 03:30:54
【问题描述】:

我想选择(进行连接)到一个记录,该记录具有一个布尔值 true 的列和该特定用户的表 has_many 记录。

例如,用户模型 has_many PhoneNumbers 并且从许多 PhoneNumbers 中他有一个默认电话号码。

这样可以吗?

谢谢。 :)

【问题讨论】:

  • 你的意思是想通过JOIN获取用户的默认电话号码吗?
  • 是的。这就是我的意思。

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


【解决方案1】:

假设:

User(:id, :first_name, :last_name)

PhoneNumber(:id, :user_id, :value, :is_default)

其中:is_default 是布尔字段,表示它是否是用户的默认电话号码。然后你可以这样做:

@users = User.joins(:phone_numbers).where('phone_numbers.is_default IS TRUE').select('users.*, phone_numbers.value AS phone_number')

然后你可以@users.first.phone_number来获取第一个用户的默认电话号码。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2020-12-08
    • 1970-01-01
    • 2022-11-16
    • 2021-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    相关资源
    最近更新 更多