2013-04-05 57 views
0

我有三個表說店,項目和item_type如何獲得包含條件的值?

店鋪包含商店的名稱和項目包含每個商店的項目和item_type包含該項目的不同類型以及狀態,如可用或不可用。

現在我想呈現

format.json { render json: {:shop => @shops.as_json(:include => :items)}} 

但根據條件,說與item_type_id = '1' 和item_type_status的狀態= '可用'

回答

1

項目試試這個:

@shops = Shop.includes(:items).where("items.itemp_type = ?", 'accesories') 
format.json { render json: { :shop => @shops.as_json(:include => :items) } } 

編輯:

一你可以這樣做的方法是用你想渲染的對象創建一個散列,然後把它傳遞給渲染方法。像這樣:

respond_to do |format| 
    format.json { render :json => {:shops => @shops, 
            :items => @items }} 
end 

如果模型沒有通過活動記錄關聯,那可能是您的最佳解決方案。

如果聯想確實存在,你可以傳遞一個:包括參數的渲染調用,就像這樣:

respond_to do |format| 
    format.json { render :json => @shops.to_json(:include => [:items])} 
end 

請注意,你不會有檢索@items變量在上面,如果節你採取這種方法,Rails會自動從@shops變量中加載它。

+0

好吧怎麼樣把item_type的狀態包括進去呢? – logesh 2013-04-05 09:02:23

+0

看到我編輯的答案。 – 2013-04-05 09:07:07

+0

不要忘記接受答案。 – 2013-04-05 10:36:10

0

您可以將方法或方法傳遞給to_json或as_json方法幷包含所需的記錄。來自Rails api的示例:

user.as_json(:methods => :permalink) 
# => {"id": 1, "name": "Konata Izumi", "age": 16, 
    "created_at": "2006/08/01", "awesome": true, 
    "permalink": "1-konata-izumi"}