Sau khi đọc: thisactiverecord - cách lấy tất cả cột của các bảng đã tham gia
Tôi vẫn chưa hiểu. trong bảng điều khiển:
puts Category.joins(:posts)
Nó thực hiện tham gia hoặc tham gia vào Danh mục và Đăng.
Tuy nhiên, tất cả dữ liệu được trả lại chỉ là các cột trong bảng Danh mục. Cách lấy dữ liệu cột đó trong Bài đăng. ?
Tôi có nên tạo mô hình khác để đạt được điều này không?
sau khi đọc: this Có phải find_by_SQL là cách duy nhất không? Tôi muốn cách ActiveRecord nếu có thể.
Cảm ơn.
Bạn nên cụ thể hơn về những gì bạn cố gắng đạt được. Nếu bạn muốn nó "cách Active Record", bạn thậm chí không nên nói về "cột" bởi vì bạn thao tác các đối tượng, không phải bảng. Nếu bạn thực sự cần dữ liệu thô, bạn có thể sử dụng 'ActiveRecord :: Base.connection.select_all ('SELECT ...')', điều này sẽ trả về cho bạn một mảng băm (không có mô hình instanciation). [tài liệu ở đây] (http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html#method-i-select_all) –
cảm ơn, tôi đang sử dụng cách này ngay bây giờ: ActiveRecord :: Base.connection .select_all (Category.joins (: posts) .to_sql)), đây có phải là cách quá khó chịu không? –
Không sao cả. Tuy nhiên, nếu bạn thực sự muốn làm việc theo cách ORM, bạn chỉ nên sử dụng các loại thủ thuật này cho các truy vấn SQL thực sự phức tạp. Đối với một vấn đề tầm thường như vậy, tôi sẽ sử dụng giải pháp @ abhishek + 'includes' để thay thế. Tại sao phải sử dụng ORM nếu bạn không mã hóa theo cách OO? –