我可以从 sequel 模型执行连接吗?
Can I execute a join from a sequel Model?
我正在将 Sequel 库用于个人项目,但我在连接方面遇到了问题。我需要检索由城市+社区组成的客户的完整地址。地址在两个 tables/models、Neighborhood
和 City
之间中断。
基本上我有以下型号:
- 客户
- 城市
- 社区
我的客户模型是这样的:
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)
这样的关系在加入时工作正常。但是相同的连接不适用于我的模型。
我做错了什么?
由于您已经定义了关联(one_to_many
、many_to_one
),因此您可以按名称引用它们。
例如,在您的 Customer
class 中,您可以到达以下城市和社区:
def complete_address
"#{city.name} - #{neighborhood.name}"
end
Sequel 根据您的关系名称创建引用,您可以使用点符号引用这些 _to_one 关联中的字段。
https://github.com/jeremyevans/sequel/blob/master/doc/association_basics.rdoc#methods-added
我正在将 Sequel 库用于个人项目,但我在连接方面遇到了问题。我需要检索由城市+社区组成的客户的完整地址。地址在两个 tables/models、Neighborhood
和 City
之间中断。
基本上我有以下型号:
- 客户
- 城市
- 社区
我的客户模型是这样的:
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)
这样的关系在加入时工作正常。但是相同的连接不适用于我的模型。
我做错了什么?
由于您已经定义了关联(one_to_many
、many_to_one
),因此您可以按名称引用它们。
例如,在您的 Customer
class 中,您可以到达以下城市和社区:
def complete_address
"#{city.name} - #{neighborhood.name}"
end
Sequel 根据您的关系名称创建引用,您可以使用点符号引用这些 _to_one 关联中的字段。
https://github.com/jeremyevans/sequel/blob/master/doc/association_basics.rdoc#methods-added