Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 与Roar的关联和收藏_Ruby_Rest_Mongoid - Fatal编程技术网

Ruby 与Roar的关联和收藏

Ruby 与Roar的关联和收藏,ruby,rest,mongoid,Ruby,Rest,Mongoid,假设我们有类似于: class Company include Mongoid::Document has_many :users field :name, type: String end class User include Mongoid::Document belongs_to :company field :name, type: String end module CompanyRepresenter include Roar::Representer

假设我们有类似于:

class Company
  include Mongoid::Document
  has_many :users
  field :name, type: String
end

class User
  include Mongoid::Document
  belongs_to :company
  field :name, type: String
end

module CompanyRepresenter
  include Roar::Representer::JSON 
  property :name
end

module UserRepresenter
  include Roar::Representer::JSON 
  property :name
  link :self do
    user_url
  end
end
然后我们继续这样做:

user.extend(UserRepresenter).to_json
一切都很好。但如何:

User.all.to_json
或:

甚至:

company.users.collect{|u| u.extend(UserRepresenter)}.extend(Representable::JSON::Collection).to_json
结果总是Mongoid的正常
到_json
条目的数组


问题是我如何获得类似于Company.all.tojson的东西,以获得包含链接和其他额外序列化数据的Roared json。

事实证明,使用(Roar使用的)实现这一点很简单:


问题是,我如何让Company.all.to_json这样的东西通过链接和所有内容获得json。
company.users.collect{|u| u.extend(UserRepresenter)}.extend(Representable::JSON::Collection).to_json
require 'roar/representer/json'

module PostRepresenter
  include Roar::Representer::JSON

  property :id
  property :title
end

require 'representable/json/collection'

module PostsRepresenter
  include Representable::JSON::Collection

  items extend: PostRepresenter
end

Post.limit(10).extend(PostsRepresenter)