Rails 4和Mongoid:将嵌入的文档检索为json

时间:2014-03-07 05:26:38

标签: json ruby-on-rails-4 mongoid

我想检索文档的所有嵌入文档,作为json元素的“列表”返回。

我的文件如下:

class Parent
 include Mongoid::Document
 field :name, :type => String
 embeds_many :kids

class Kid
 include Mongoid::Document
 field :kidname, :type => String
 embedded_in :parent, :inverse_of => :kids

我定义了两条路线

 get 'parents/:kidname' => 'parents#getparents'

其中getparents被定义为

@retval = Parent.where("kids.kidname" => params[:kidname])

respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @retval}
end

这给了我正确的输出,即孩子的名字是params的父母[:kidname]

然而,当我尝试反过来时,即检索父母姓名为params [:name]的所有孩子的名单时,这不起作用!路线是

get 'kids/:name' => 'parents#getkids'

和getkids定义为

def getkids
 @parent = Parent.where("name" => params[:name])
 @kids = @parent.kids

 respond_to do |format|
  format.html # index.html.erb
  format.json { render json: @kids}
 end
end 

我做错了什么?是否定义了getkids是否重要..我在parents_controller中定义它,它应该在kids_controller中吗?请帮忙!

感谢。

1 个答案:

答案 0 :(得分:0)

如果您未收到结果或收到错误,请将此行@parent = Parent.where("name" => params[:name])更改为@parent = Parent.where("name" => params[:name]).first