我想检索文档的所有嵌入文档,作为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中吗?请帮忙!
感谢。
答案 0 :(得分:0)
如果您未收到结果或收到错误,请将此行@parent = Parent.where("name" => params[:name])
更改为@parent = Parent.where("name" => params[:name]).first