2013-03-11 17 views
0

我有櫥櫃視圖,希望顯示與機櫃具有相同數據中心和位置的RFID標籤列表。我找不到該命令的語法來查找符合條件的所有FRID記錄。 RFID顯示器被設計爲櫥櫃視圖文件夾的一部分。該命令應獲取記錄,其中rfid.data_center = cabinet.data_center AND rfid.position = cabinet.cabinet_name。如果我硬編碼字符串在它的作品。下面的代碼:如何使用包含部分視圖的參數運行SQL查詢?

<% @cabinet.devices.order(:name).each do |device| %> 
    <% @rfid = Rfid.where("(@rfid.data_center_name = '%#{params[:data_center]}%') AND (@rfid.position = '%#{params[:cabinet_name]}%')").uniq %> 
+0

你的模型是什麼樣的?機櫃,設備和RFID之間的關係是什麼? – 2013-03-11 17:02:08

回答

1

你有以上什麼是容易受到SQL注入,則需要使用參數綁定,而不是做用繩子綁定自己。這裏是做一個方式:

Rfid.where(:data_center_name => params[:data_center], :position => params[:cabinet_name]).uniq 

鑑於你有什麼上面,你可能會想是這樣的:

<% @cabinet.devices.order(:name).each do |device| %> 
    <% @rfids = Rfid.where(:data_center_name => device.cabinet.datacenter, :position => device.cabinet.cabinet_name).uniq %> 

有更好的方法來寫這個,但我們需要看到你的關係,並更好地瞭解你正在嘗試做什麼。

相關問題