【问题标题】:Can I execute a join from a sequel Model?我可以从续集模型执行连接吗?
【发布时间】:2017-05-02 19:32:06
【问题描述】:

我将 Sequel 库用于个人项目,但我在连接方面遇到了麻烦。我需要检索客户的完整地址,即由城市 + 社区组成。地址在两个表/模型之间断开,NeighborhoodCity

基本上,我有以下型号:

  • 客户
  • 城市
  • 邻里

我的客户模型是这样的:

class Customer < Sequel::Model
  many_to_one :city
  many_to_one :neighborhood

  def complete_address
    city = join(:city).select(:city__name)
    neighborhood = join(:neighborhood).select(:neighborhood__name)

    "#{city} - #{neighborhood}"
  end
end

class City
  one_to_many :customers
end

class Neighborhood
  one_to_many :customers
end

在加入Customer.join(:city)Customer.join(:neighborhood) 时,关系正常工作。但是相同的连接不适用于我的模型。

我做错了什么?

【问题讨论】:

    标签: ruby join orm sequel


    【解决方案1】:

    由于您已经定义了关联(one_to_manymany_to_one),您可以通过名称引用它们。

    例如,在您的Customer 班级中,您可以通过以下方式在城市和附近获得:

    def complete_address
      "#{city.name} - #{neighborhood.name}"
    end
    

    Sequel 根据您的关系名称创建引用,您可以使用点符号来引用这些 _to_one 关联中的字段。

    https://github.com/jeremyevans/sequel/blob/master/doc/association_basics.rdoc#methods-added

    【讨论】:

      猜你喜欢
      • 2017-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-12-24
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多