Tôi có mô hình Đánh giá. Đánh giá có nhiều điểm. Bất cứ khi nào một đánh giá mới được tạo ra, một bản ghi điểm được tạo ra cho mỗi người dùng cần đánh giá (xem dưới đây cho phương pháp hiện tại tôi đang sử dụng để làm điều này.) Vì vậy, ví dụ, 40 hồ sơ điểm có thể được tạo ra cùng một lúc. Chủ sở hữu Đánh giá sau đó cập nhật từng bản ghi điểm với điểm số của Người dùng.Đường ray 3, câu lệnh chèn SQL nguyên bản tùy chỉnh
Tôi đang tìm cách sử dụng SQL thô vì mỗi lần chèn là giao dịch của riêng nó và chậm.
Tôi muốn chuyển đổi sau đây vào một tuyên bố chèn khối lượng sử dụng SQL liệu:
def build_evaluation_score_items
self.job.active_employees.each do |employee|
employee_score = self.scores.build
employee_score.user_id = employee.id
employee_score.save
end
end
Bất kỳ suy nghĩ về cách thức này có thể được thực hiện? Tôi đã cố gắng thích ứng với một mẫu mã từ trang web Coffee Powered của Chris Heald nhưng không có súc sắc.
Nhờ bất kỳ ai sẵn sàng trợ giúp!
CHỈNH SỬA 1
Tôi bỏ qua đề cập đến phương pháp hiện tại được gói trong giao dịch. Vì vậy, về cơ bản, tôi đang cố gắng để thêm này vào khối mã để tất cả mọi thứ được chèn vào trong một tuyên bố (** Đoạn mã này là từ trang web Coffee Powered của Chris Heald đã thảo luận về chủ đề này. bài này là> 3 tuổi):.
inserts = []
TIMES.times do
inserts.push "(3.0, '2009-01-23 20:21:13', 2, 1)"
end
sql = "INSERT INTO user_node_scores (`score`, `updated_at`, `node_id`, `user_id`)VALUES #{inserts.join(", ")}"
tôi muốn được hạnh phúc để hiển thị các mã từ một số nỗ lực của tôi không làm việc ...
Cảm ơn một lần nữa!
Vâng, tôi đã gom góp một cái gì đó tương tự như đoạn mã trên nhưng tôi nhận được một lỗi không hợp lệ câu lệnh SQL xung quanh (phần 'evaluation_id'. Bất kỳ suy nghĩ?
def build_evaluation_score_items
inserts = []
self.job.active_employees.each do |employee|
inserts.push "(#{self.id}, #{employee.id}, #{Time.now}, #{Time.now})"
end
sql = "INSERT INTO scores ('evaluation_id', `user_id`, 'created_at', `updated_at`)VALUES #{inserts.join(", ")}"
ActiveRecord::Base.connection.execute(sql)
end
Bất kỳ ý tưởng như những gì trong ? trên SQL code đang gây ra lỗi
phần created_at không làm việc cho tôi kể từ khi nó đang tạo ra một chuỗi Postgres là không phân tích cú pháp. 'ActiveRecord :: StatementInvalid: PG :: Cú phápError: ERROR: lỗi cú pháp tại hoặc gần" 07 " LINE 4: (1, 1, 100, 2017-02-20 07:00:56 +0000, 2017-02-20 07 ... ' – Gambo