Неверное количество аргументов при использовании Squeel

Во-первых, я выполняю простое тестирование скрипа в консоли Rails.

User.where{name == "abc"}

Нет проблем для вновь созданного проекта Ruby

User Load (0.3ms)  SELECT "users".* FROM "users" WHERE "users"."name" = 'abc' => [] 

Однако, когда я применяю его к своему существующему проекту, он выдает мне сообщение об ошибке:

1.9.3p125 :001 > User.where{name == "abc"}
ArgumentError: wrong number of arguments (0 for 1)  from /Users/xxx/.rvm/gems/ruby-1.9.3-p125/gems/parse_resource-1.7.3/lib/parse_resource/query.rb:11:in `where'
    from /Users/xxx/.rvm/gems/ruby-1.9.3-p125/gems/parse_resource-1.7.3/lib/parse_resource/base.rb:243:in `where'
    from (irb):1
    from /Users/xxx/.rvm/gems/ruby-1.9.3-p125/gems/railties-3.2.3/lib/rails/commands/console.rb:47:in `start'
    from /Users/xxx/.rvm/gems/ruby-1.9.3-p125/gems/railties-3.2.3/lib/rails/commands/console.rb:8:in `start'
    from /Users/xxx/.rvm/gems/ruby-1.9.3-p125/gems/railties-3.2.3/lib/rails/commands.rb:41:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

Я обнаружил наиболее важную проблему: Squeel issue #193.

Пишет, что Squeel не загружен. Но, в моем случае, новосозданный можно реализовать на той же машине.

В любом случае, я пытаюсь изменить active_record.rb, как указано, но проблема все еще здесь для моего существующего проекта.

Я использую Ruby-1.9.3-p125, Rails v3.2.6 и Squeel 1.0.14.


person Vincent    schedule 06.12.2012    source источник
comment
Ваши версии Rails и Ruby устарели, а в более новых версиях есть важные исправления безопасности. Вы должны обновиться до последних версий как можно скорее.   -  person Andrew Marshall    schedule 06.12.2012
comment
Мы с Туре сделаем это позже. Но на самом деле я ограничен Heroku, облачным сервисом. Я должен следовать его рубиновой версии, чтобы убедиться, что мой сайт работает.   -  person Vincent    schedule 06.12.2012
comment
Возможен ли конфликт между драгоценными камнями, parse_resource и squeel?   -  person Vincent    schedule 06.12.2012
comment
Та же проблема, размещенная на github: github.com/ernie/squeel/issues/206   -  person Tyler DeWitt    schedule 07.12.2012


Ответы (1)


Вместо использования предложения where вы можете использовать:

User.filter(:name => 'abc').first

Это может сработать в вашем случае

person barkha    schedule 06.12.2012
comment
› NoMethodError: неопределенный метод «фильтр» для User:Class - person Vincent; 06.12.2012
comment
Не похоже на метод - person Travis Pessetto; 06.06.2013