2011-08-17 14 views
0

我設置了一個項目,我想將一些rails代碼移動到我的mysql數據庫。我想把我在控制器中使用的條件放在數據庫中。我稱這個表格爲Filter。屬性是名稱和過濾器,在這種情況下,我將條件放在一個簡單的條件中:'status = ?' ,'P'Ruby代碼作爲來自dbase的屬性

現在從我的控制器我要撥打的條件是這樣的:

@programs = Program.where(Filter.find_by_name(params[:filter]).filter) 

因此,基於中日URL篩選參數我所說的條件。我無法讓它工作,我認爲問題是條件返回爲字符串。所以基本上我結束了:

@programs = Program.where("'status = ?' ,'P'") # including the string quotes 

返回一個錯誤:

ActiveRecord::StatementInvalid: Mysql2::Error: Operand should contain 1 column(s): SELECT `programs`.* FROM `programs` WHERE ('status = ?' ,'P') 

這並不工作:

@programs = Program.where('status = ?' ,'P') 

所以我的條件,控制器和模型都很好。任何人都知道如何解決這個問題?

回答

1

只是其存儲在數據庫中:

status = 'P' 

這將成爲:

@programs = Program.where("status = 'P'") 

,應該很好地工作。