2009-08-03 28 views
6

Dường như việc chọn mặc định cho Phần tiếp theo là "chọn *", gây ra tất cả các loại sự cố khi bạn thêm một số kết nối. Ít nhất bạn kết thúc với các id sai trong các đối tượng của bạn (vì sau đó sẽ có nhiều hơn một cột "id" trả về). Làm một cái gì đó nhưPhần tiếp theo chọn quá nhiều cột

.select("people.*") 

dường như hoạt động nhưng điều đó xử lý chuỗi được chuyển thành cột và báo giá. Cho đến nay tôi đã phải quay trở lại SQL trống để giải quyết điều này, nhưng tôi biết phải có một cách tốt hơn.

Trả lời

5

Hành vi mặc định cho phần tiếp theo là chọn tất cả các cột nhưng dễ dàng ghi đè lên. Nếu bạn muốn chỉ chọn tất cả các cột từ một bảng duy nhất:

.select(:people.*)

Nếu bạn muốn sử dụng một chuỗi SQL đen:

.select('people.*'.lit)

+6

Những cú pháp không làm việc cho tôi, như của phần tiếp theo 4.10. ': people. *' phàn nàn 'phương thức undefined * cho: people: Symbol', và' 'people. *'. lit' than phiền 'undefined method lit cho" people. * ": String'. ': 'people. *'' chỉ kết thúc tìm kiếm '" mọi người. * "'. '.select_all (: people)' thực hiện thủ thuật. – womble

+0

'select_all' cũng chấp nhận nhiều bảng. Nếu bạn muốn tất cả các cột từ một vài bảng và một cột cụ thể từ một bảng thứ ba, sử dụng 'select_all (: tbl1,: tbl2) .select_more (: tbl3__col)' – Kelvin

+2

''people. *'. Lit' bây giờ là' Sequel. thắp sáng ('người. *') ' – Kelvin

Các vấn đề liên quan