Ruby-код как атрибут из базы данных - PullRequest
0 голосов
/ 17 августа 2011

Я настраиваю проект, в котором я хочу переместить часть кода rails в мою базу данных mysql.Я хочу поместить условия, которые я использую в контроллере в базу данных.Я назвал эту таблицу Фильтром.Аттрбуты - это имя и фильтр, в котором я поместил условие в этом случае просто: 'status = ?' ,'P'.

Теперь из моего контроллера я хочу вызвать условие следующим образом:

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

Итак, на основе параметра фильтра в de 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 Ответ

1 голос
/ 17 августа 2011

Просто сохраните это в базе данных:

status = 'P'

Это становится:

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

и должно работать нормально.

...