簡體   English   中英

我下面的范圍有什么問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM