2012-05-29 3 views
0

Я использую камень Metawhere rails для запроса моей dbase. У меня есть запрос, который работает:Metawhere абстрактные условия из запроса

t=Model.where({:attr1 => 450} | {:attr2 => 450}, :lang => 2) 

теперь я пытаюсь абстрагироваться условия из запроса, как это:

conditions=Hash[{:attr1 => 450} | {:attr2 => 450}, :lang => 2] 
t=Model.where(conditions) 

но первая строка дает мне: ошибка синтаксиса, неожиданный tASSOC, ожидая «]

Я пробовал много вещей, таких как создание условий в строке и условий (условий). но это дает мне SyntaxError: (eval): 1: in `irb_binding ': ошибка компиляции (eval): 1: синтаксическая ошибка, неожиданная', ', ожидающая $ end

Я застрял. Если вы можете мне помочь, это будет оценено по достоинству.

Рутгер

ответ

2

заменить

conditions=Hash[{:attr1 => 450} | {:attr2 => 450}, :lang => 2}] 

с

conditions=Hash[{:attr1 => 450} | {:attr2 => 450}, :lang => 2] 
+0

Алекс, Argh, жаль, что был я typoe в моем коде выше (я настроил его). В реальном коде эта скобка не была так благодарна за подсказку, но не для решения моей проблемы. – Rutger

+0

Итак, у вас все еще есть ошибка 'неожиданный tASSOC, ожидающий ']' даже без этой скобки? – alexkv

+0

Кстати, попробуйте это условие 'conditions = [{: attr1 => 450} | {: attr2 => 450},: lang => 2] ' – alexkv

 Смежные вопросы

  • Нет связанных вопросов^_^