我正在尝试直接在mysql服务器数据库上运行这样的东西:
SupportRequest.all.map{ |support_request| SupportRequestFeedback.create(support_request_id: support_request.id) if support_request.support_request_feedback == nil}
我知道它产生的查询但不知道如何在1查询命令中实现(带循环)?
答案 0 :(得分:2)
您可以在rails控制台中输入此行以显示查询:
ActiveRecord::Base.logger = Logger.new(STDOUT)
然后输入您的代码并显示查询。
答案 1 :(得分:0)
我可能错了,但我不认为Rails会立即调用这种操作。
您可以设置服务来执行此操作,但是:
support_requests_without_feedback = SupportRequest.includes(:support_request_feedback).where(support_request_feedback: {id: nil})
您可以使用active_record-import
gem来实现大量数据库插入,或者您可以使用它:(虽然效率不高):
support_requests_without_feedback.map{|sr| sr.support_request_feedback.create }