这个rails查询如何在sql查询上?

时间:2016-07-26 17:15:23

标签: mysql sql ruby-on-rails

我正在尝试直接在mysql服务器数据库上运行这样的东西:

SupportRequest.all.map{ |support_request| SupportRequestFeedback.create(support_request_id: support_request.id) if support_request.support_request_feedback == nil}

我知道它产生的查询但不知道如何在1查询命令中实现(带循环)?

2 个答案:

答案 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 }