2016-04-18 10 views
1

私はレールの初心者です。シリアライザを発見したばかりです。ActiveRecord :: Serializerを使用したRailsスコープの問題

私のモデルの実装を進めます。

render json: MyModel.where(...), each_serializer: MyModelSerializer, root: false 
# note : that's the only line in my function 

そして最後に、私のシリアライザ:

class MyModelSerializer < ActiveModel::Serializer 
    attributes :id, :name, ... # all attributes in my model, I double-checked 
end 

エラーI私は自分のデータをレンダリング私の関数の中で、私はこれを行う、私のコントローラに続いて

rails g serializer MyModel 

とシリアライザを生成しました今すぐレールサーバーから得る:

uninitialized constant MyModelController::MyModelSerializer 

何か不足していますか? :(あなたの助けのための

感謝:)

をところで、私は、シリアライザとJSONをレンダリングすることになっている機能は、ビューからのAjaxリクエストで呼び出されたことを追加します。それはしかし、物事を変更した場合...

答えて

0

は、あなたのコントローラのコードでこのビットを変更しようと知ってはいけない:

each_serializer: ::MyModelSerializer 

二つのコロンは、基本的には「ルート」にMyModelSerializerクラスを探すためにRubyインタプリタを強制し、 MyModelControllerには含まれません。あなたのエラーメッセージから、それは問題のようです。

+0

まだほとんど同じエラーです。しかし、今回はコントローラースコープを省略します: "初期化されていない定数MyModelSerializer" – Naarsh

+0

これはアクセスできないことを意味します。あなたの 'MyModelSerializer'ファイルはどこにありますか? – Uzbekjon

+0

私のファイルパスは古典的だと思います。私のモデルは/ app/models /にあります。 、/ app/controllers /内のコントローラ。私の唯一のシリアライザは/ app/serializers /にあります。 レールが提供するgenerateメソッドで作成されたフォルダは作成していませんでした。 – Naarsh

関連する問題