0

これは私のシリアライザーです

class TestSerializer < ActiveModel::Serializer
    attributes :post
    def post
        @post = user.joins(:post).select("user.name as name,post.content as content").where("user_id = ?",object.id)
    end

end

この json レスポンスを emberjs モデルとビューで呼び出すにはどうすればよいですか。

4

1 に答える 1

0

あなたはこれを少し後ろ向きに持っているようです。Post をシリアライズしたい場合は、PostSerializer が必要です。

次のような Post モデルのセットアップが既にある場合は、

class User < AR::Base
  has_many :posts
end

class Post < AR::Base
  belongs_to :user
end

次を使用してシリアライザーを作成します。

rails g serializer post
rails g serializer user

これは次のようになります

class PostSerializer < ActiveModel::Serializer
  attributes :id, :title
  has_one :user
end

コントローラーで、セットアップされていることを確認します。

class PostsController 
  respond_to :html, :json
  def show
    @post = Post.find(params[:id])
    respond_with @post
  end
end

これで準備完了です。/posts/1.json を呼び出すと、

{"post":{"id":1,"title":"the title","user":{"id":1,"name":"jesse"}}}
于 2013-08-07T14:24:31.243 に答える