2014-03-07 48 views
0

我想檢索文檔的所有嵌入文檔以返回json元素的「列表」。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中?請幫忙!

謝謝。

回答

0

,如果你再沒有得到結果,或者得到一些錯誤此行@parent = Parent.where("name" => params[:name])更改爲@parent = Parent.where("name" => params[:name]).first

+0

這工作!謝謝。 – user2275410