簡體   English   中英

Rails中與find_by_sql相關的問題

[英]issues related find_by_sql in rails

我正在使用Rails 4,需要在活動記錄模型中使用find_by_sql,現在我面臨兩個嚴重的問題。 第一個是它是否給我#Employee:0x0000000b2a1718作為結果,這並沒有給我特定的數據。 我的模型名稱是Employee,而批發名稱是employee。 我正在使用pg。

請告訴我有什么解決辦法。

第二個問題是如何在find_by_sql中使用的sql查詢中編寫任何rails變量。 例如,我要執行find_by_sql(“從員工那里選擇名字,其中id = @ var”),其中@var是一個ruby變量。

我需要執行的實際查詢是使用find_by_sql從員工那里選擇comapact_string之類的名字,例如%@ var%。

進行查詢時有一定程度的自定義。 最簡單的形式是可以使用內置查找器的位置:

Employee.where(id: @var).pluck(:first name)

這將直接匹配,如果找到,則為您提供first_name列值。 pluck不會產生任何模型。

如果要與LIKE進行近似匹配,則可以更正式地寫出WHERE子句:

Employee.where('id LIKE ?', "%{@var}%").pluck(:first_name)

很少需要使用find_by_sql來寫出整個查詢,但是如果這樣做,則必須對輸入到查詢中的數據非常謹慎。 強烈建議盡可能使用占位符值,如果絕對必須繞過它,則不管源如何,都應轉義所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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