3

まず、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 がロードされていないと表示されます。しかし、私の場合、new-created は同じマシンに実装できます。

とにかく、記載されているようにactive_record.rbを変更しようとしましたが、既存のプロジェクトにはまだ問題があります。

Ruby-1.9.3-p125、Rails v3.2.6、Squeel 1.0.14 を使用しています。

4

1 に答える 1

-1

where句を使用する代わりに、次を使用できます。

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

これはあなたの場合にうまくいくかもしれません

于 2012-12-06T06:03:55.793 に答える