4

我在 Rails 中有 3 个模型:User、UserProfile 和 Post

像这样的东西:

class Post < ActiveRecord::Base
  attr_accessible :content, :post_type
  belongs_to :user

  delegate :fullname, :to => :user, :prefix => "author"
end

class User < ActiveRecord::Base
  has_many :posts
  has_one :user_info
  delegate :fullname, :to => :user_info
end

class UserInfo < ActiveRecord::Base
  attr_accessible :avatar, :fullname, :birthday, :nickname, :gender, :about

  belongs_to :user
end

现在我使用淘汰赛来管理客户端的帖子,所以我必须使用posts.to_json将我的对象变成json。这些 JSON 对象没有属性全名。我尝试使用 user.to_json,这些对象也没有该属性。那么如何让委托序列化为 JSON 呢?

4

1 回答 1

6

由于 fullname 在某种意义上是一个虚拟属性:

导轨 2:

posts.to_json(:method => %w(fullname))
user.to_json(:method => %w(fullname))

导轨 3:

posts.to_json(:methods => %w(fullname))
user.to_json(:methods => %w(fullname))
于 2013-05-14T20:40:44.997 回答