2009-05-03 9 views
0

に失敗します私が見つけた、平坦化された、そしてユニークなユーザーの配列。しかし、実行中のコードの同じ行search_for_users方法の一部として、私はこのエラーに(データを期待)AR.to_json作品は、私はこのコードのブロックを持っているブラウザ

はTypeErrorコントローラ名に#search_for_users
間違った引数の型のハッシュ

を取得し、参照行があること.to_json呼び出しの行。

コードはそのまま同じですので、私は困惑しています。唯一の違いは、コンソールで実行しているときに条件を手動で入力することですが、私の方法では、クエリをparams[:query]から引き出しています。しかし、私はちょうどクエリをハードコーディングして同じ結果を得たので、私はそれが問題だとは思わない。 :includeを削除してもエラーは表示されませんが、必要なデータも表示されません。

誰でも問題の可能性はありますか?

+0

問題が発生しますか?できますか – pts

+0

いいえ、私が 'find(some_id).to_json:include => [:licenses]'私はライセンスに問題はありません。私はそれが 'Enumerable#to_json'の問題を指摘していると思いますか? – jxpx777

答えて

1

コントローラーに含まれていると、.to_jsonが失敗する原因となるプラグインと宝石がいくつかあります。私はTwitterの宝石がそれらの1つだと信じている(これはしばらく後に問題に遭遇した)。

このコントローラーに「[anything]」または「require [anything]」がありますか?

ない場合、私は一時的にトラブルシューティングを使用しているすべてのプラグインなどを取り除くことをお勧めしたい

最後に、あなたは、単にとその全体のコントローラのアクションを置き換えるとどうなるか:(1 2 3 4ワット %を5).to_json

これは、失敗しているものを突き止めるのに役立ちます。

+0

はい!上部に '' json'''行が必要です。これを削除すると問題が解決しました。どうもありがとう! – jxpx777

0

テストまたはコンソールのコードが本番環境と異なる場合(開発モードでサイトを実行している可能性があります)、ロード・オーダーの問題が発生します。プロダクション環境では、すべてのモデルとコントローラがプリロードされ、必要に応じて遅延ロードされる他の環境では、 RAILS_ENV=production ./script/consoleでコンソールを起動し、この方法でエラーを再現できるかどうか確認してください。 cscottaが言及したように、 `json 'が必要なときに得られる機能について言及すると、.to_jsonに干渉する可能性のある宝石とライブラリがいくつかあります。私は個人的にいくつかの問題にぶつかりました。

希望これは、ユーザーが一定のIDではなくUser.findによってフェッチされた単一のユーザーのみが、含まれている場合

セブ

関連する問題