關於includes後遇到的N 1問題

2021-09-02 16:02:47 字數 520 閱讀 3764

之前有使用,eager_load preload 來減少n+1問題,

後來發現includes更好用,可以巢狀關聯。像這樣子:inquiry.includes(:inquiry_manager,:contact,inquiry_items: :chemical)

今天關聯乙個表的時候發現死活還是遇到n+1問題,後來才發現,自己在關聯類中定義了乙個例項方法重寫了sql。

def package_info

inquiry_items.pluck(:name,:package,:unit).join("").join(";")

end這裡的 inquiry_items.pluck 會重新再查詢inquiry和inquiry_items的關係

修改方法,就是用迴圈來寫:

def package_info

inquiry_items.each do | item|

#這樣就不會再關聯了。

endend

N 後0的個數

問題描述 給定引數n n為正整數 請計算n的階乘n!末尾所含有 0 的個數。例如,5!120,其末尾所含有的 0 的個數為1 10!3628800,其末尾所含有的 0 的個數為2 20!2432902008176640000,其末尾所含有的 0 的個數為4。計算公式 這裡先給出其計算公式,後面給出推...

gitlab遷移後遇到的問題

1 gitlab遷移後發現從之前的資料庫導過來的使用者資料編輯不了,報錯404,經測試發現新建的使用者可以編輯,故沒辦法只好把除管理員之外的使用者資料都清了,重新建立一遍使用者,但問題出現了,當我清理完除管理員之外的使用者後管理員登入報500,具體報錯資訊是 remote ip 192.168.1....

統計n!後0的個數

統計0的個數,你只需要統計2 5的個數,然而在該數列中,5的個數遠遠少於2的個數,所以僅僅只需要統計5的個數即可。code include include include include include include using namespace std define ll long long ...