Trong đường sắt 4, tìm thấy với nhiều điều kiện ví dụ xem xét tìm Profile
với first_name
và last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
Finds kỷ lục đầu tiên phù hợp với các điều kiện quy định. Không có thứ tự ngụ ý vì vậy nếu vấn đề đặt hàng, bạn nên tự mình xác định. Nếu không có hồ sơ được tìm thấy, trả về nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Giống như find_by, ngoại trừ việc nếu không có hồ sơ được tìm thấy, đặt ra một lỗi ActiveRecord :: RecordNotFound.
Để biết thêm thông tin đọc Rails Finder Method
1: http://api.rubyonrails.org/classes/ActiveRecord/FinderMethods.html#method-i-find_byIn đường sắt 4, tìm thấy với nhiều điều kiện ví dụ xem xét tìm Profile
với first_name
và last_name
Profile.find_by first_name: 'stack', last_name: 'flow'
Finds kỷ lục đầu tiên phù hợp với các điều kiện quy định. Không có thứ tự ngụ ý vì vậy nếu vấn đề đặt hàng, bạn nên tự mình xác định. Nếu không có hồ sơ được tìm thấy, trả về nil
Profile.find_by! first_name: 'stack', last_name: 'flow'
Giống như find_by, ngoại trừ việc nếu không có hồ sơ được tìm thấy, đặt ra một lỗi ActiveRecord :: RecordNotFound.
Để biết thêm thông tin, hãy đọc Rails Finder Method
'.all' là không cần thiết. – Mischa
@Mischa - Rất đúng, nhưng điều đó tất nhiên sẽ phụ thuộc vào địa điểm và cách thức người ta sử dụng câu lệnh, và tôi đồng ý trong hầu hết các trường hợp không cần thiết. Đối với câu trả lời này, tôi muốn trả về một cách rõ ràng mảng kết quả và không phải là đối tượng ActiveRecord :: Relation để tránh bất kỳ sự nhầm lẫn nào có thể xảy ra. Cảm ơn bạn đã chỉ ra điều đó! – miked
Tôi nghĩ có vẻ lạ khi gọi 'all' khi bạn * không * muốn tất cả. Nếu bạn chỉ thực hiện nó để trả về một mảng thay vì một 'ActiveRecord :: Relation', nó sẽ IMO rõ ràng hơn để chỉ gọi' to_a' thay thế. – Mischa