vấn đề cố định ... Hóa ra là có một phương pháp kỷ lục hoạt động đó đã vượt qua bằng văn bản, bây giờ tất cả mọi thứ công trình như mong đợiLàm thế nào để bạn thiết lập phạm vi thể kết nối dựa trên các mối quan hệ trong Mongoid
Tôi cố gắng để thiết lập phạm vi để tôi có thể thực hiện cuộc gọi mà trông giống như
Competitor.of_type(type).at_event(event)
rằng sẽ trả lại tất cả đối thủ cạnh tranh của loại hình đó tham dự sự kiện Mô hình của tôi trông giống như
class Competitor < Competitor
belongs_to :type
has_and_belongs_to_many :events
scope :at_event, ->(event) {where(:event_ids.in => event.competitor_ids)}
scope :of_type, ->(type) where(:type_id => type.id)
end
Các công trình sau đây (trở lại tiêu chí mongoid)
Competitor.of_type(type)
Competitor.at_event(event)
Nhưng khi tôi chuỗi chúng, nó in ra cái gì đó trông như thế này:
#<Competitor:0x00000109e2b210>
#<Competitor:0x00000109e2ab08>
-------=-=------------------------------------
=> #<Mongoid::Criteria
selector: {},
options: {},
class: Competitor,
embedded: false>
Có một entry đối thủ cạnh tranh đối với mỗi đối thủ cạnh tranh. of_type (loại) (tiêu chuẩn chuỗi đầu tiên) và nếu tôi chạy .count trên truy vấn, tôi nhận được tổng số đối thủ cạnh tranh trong cơ sở dữ liệu.
Ở phía trên cùng của tài liệu mongoid cho phạm vi, nó nói Tất cả các phạm vi có thể chuỗi và cũng có thể được áp dụng cho các liên kết, sau này được thảo luận trong phần quan hệ. Thật không may là tôi không nhìn thấy một phần quan hệ phụ, tôi không thể tìm thấy một tham chiếu duy nhất cho phạm vi trong phần quan hệ chính.
tôi đã có thể để có được những điều sau đây để trả lại kết quả tôi muốn:
where(:id.in => event.competitor_ids).where(:type_id => type.id)
nhưng nếu bất kỳ phần nào của truy vấn được chia thành một phương pháp riêng biệt hoặc phạm vi nó không thành công và cung cấp kết quả tôi đã giới thiệu ở trên.
Vui lòng hỏi câu hỏi của riêng bạn và đánh dấu câu hỏi là đã giải quyết. –