我有三個表說店,項目和item_type如何獲得包含條件的值?
店鋪包含商店的名稱和項目包含每個商店的項目和item_type包含該項目的不同類型以及狀態,如可用或不可用。
現在我想呈現
format.json { render json: {:shop => @shops.as_json(:include => :items)}}
但根據條件,說與item_type_id = '1' 和item_type_status的狀態= '可用'
我有三個表說店,項目和item_type如何獲得包含條件的值?
店鋪包含商店的名稱和項目包含每個商店的項目和item_type包含該項目的不同類型以及狀態,如可用或不可用。
現在我想呈現
format.json { render json: {:shop => @shops.as_json(:include => :items)}}
但根據條件,說與item_type_id = '1' 和item_type_status的狀態= '可用'
項目試試這個:
@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變量中加載它。
您可以將方法或方法傳遞給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"}
好吧怎麼樣把item_type的狀態包括進去呢? – logesh 2013-04-05 09:02:23
看到我編輯的答案。 – 2013-04-05 09:07:07
不要忘記接受答案。 – 2013-04-05 10:36:10