[英]What is wrong with my scope below
我正在用Rails編寫活動記錄范圍。 我有以下sql:
SELECT user.roll_number, first_name, last_name FROM user
INNER JOIN classes ON user.roll_number = classes.roll_number
AND classes.id IN #{id} ORDER BY(roll_number)
我在用戶類中編寫了作用域,基本上這些表都在db2數據庫中,所以我如下所示編寫了作用域
scope :by_id, lambda { |id|
{ select("user.roll_number, first_name, last_name")
.joins("INNER JOIN classes ON (user.roll_number = classes.roll_number \
and classes.id = #{id})")
}
}
示波器有問題嗎? 我收到“意外的關鍵字結束錯誤”
如評論中所述,您需要刪除這些{}
大括號。 我猜您看到的錯誤是因為:
{ select("...") }
解釋為哈希的實例化,具有select("...")
且沒有值。 露比對你不滿意
您的后續行動:
如果我傳遞多個ID怎么辦? 即使有ID為1和ID為2的記錄,我也得到了空列表。我以ID = [1,2]的形式通過ID以數組形式傳遞ID
您編寫了一個SQL lambda,因此,要使該SQL工作就全部由您來決定。 [1,2]
列表如下所示:
INNER JOIN classes ON (user.roll_number = classes.roll_number
and classes.id = [1,2])
可以在您的SQL DB上使用嗎? 您不想使用and classes.id IN (1,2)
嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.