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

我如何在 emberjs 模型和视图中调用这个 json 响应。

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 回答