Ứng dụng Rails của tôi đang bắt đầu cần các truy vấn phức tạp. Tôi có nên bắt đầu sử dụng các truy vấn SQL thô không? Xu hướng trong cộng đồng Rails là gì?Truy vấn Rails của tôi đang bắt đầu phức tạp, tôi có nên chuyển sang truy vấn SQL thô không? Bạn làm nghề gì?
Cập nhật: truy vấn
Tôi không có văn bản ngay bây giờ, tôi muốn hỏi câu hỏi này trước khi tôi bắt đầu. Nhưng đây là một ví dụ về những gì tôi muốn làm:
Tôi có các sách có danh mục. Tôi muốn say-
Give me all books that were:
-created_at (added to store) between date1 and date2
-updated_at before date3
-joined with books that exist in shopping carts right now
tôi đã không viết các truy vấn được nêu ra nhưng tôi nghĩ rằng phiên bản ray sẽ là một cái gì đó như thế này:
books_to_consider = Book.find(:all,
:conditions => "created_at <= '#{date2}' AND created_at >= '#{date1}' AND updated_at <= '#{date3}'",
:joins => "as b inner join carts as c on c.book_id = b.id")
tôi không nói ActiveRecord không thể xử lý truy vấn này , nhưng nó được chấp nhận hơn để đi với SQL nguyên cho dễ đọc (hoặc có thể có những hạn chế khác mà tôi chưa biết)?
bạn có thể đưa ra một ví dụ cụ thể? –
bạn có thể đưa ra một số ví dụ về các truy vấn mà bạn cảm thấy quá phức tạp khi sử dụng các tính năng của Rails/ActiveRecord không? – cpjolicoeur
Xin lưu ý rằng loại nội suy đó thực sự là một ý tưởng tồi. Điều gì sẽ xảy ra nếu ngày1, ngày 2 hoặc ngày3 chứa ký tự "'"? Bạn đang ở trong một ngôn ngữ năng động; đó có thể là chuỗi. –