Trong các mô hình của tôi, tôi có người dùng (User
) và các câu chuyện (Story
), với quan hệ: user has_many stories
.Ruby on Rails: #any? trả về giá trị sai
tôi đã nhận thấy một cái gì đó kỳ lạ trong vỏ của tôi:
(dev) user.stories.any?
=> true
(dev) user.stories
Story Load (1.6ms) SELECT "stories".* FROM "stories" WHERE "stories"."user_id" = 703 ORDER BY created_at ASC [["user_id", 703]]
=> []
(dev) user.stories.any?
=> false
làm việc như thế này? Đây có phải là do mã của tôi hay là lỗi của một số loại trong Rails và cách nó truy vấn cơ sở dữ liệu?
@sawa những gì bạn có nghĩa là dấu chấm câu tiếng Anh không? Bạn có thể chính xác hơn không? Tôi rõ ràng không phải là một người bản ngữ và đôi khi tôi chỉ đơn giản là không nhìn thấy sai lầm ở đâu. – Mat
OK. Sau đó, các quy tắc là các ngôn ngữ khác nhau. Trong tiếng Pháp, chúng tôi sử dụng dấu cách trước và sau khi dấu câu được tạo thành từ hai phần. – Mat
lỗi có thể có trong mối quan hệ hoạt động của đường ray? xem nguồn cho http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method-i-any-3F gọi http://api.rubyonrails.org/classes/ActiveRecord/Relation.html#method- i-empty-3F và trả về true 'nếu limit_value == 0' - có thể là một tối ưu hóa để tránh nhấn cơ sở dữ liệu nhiều lần? Tôi tự hỏi nếu nó hoạt động giống nhau trong môi trường RAIN đường ray? – house9