无需嵌套模板时,如何从Ember应用调用Rails嵌套路由?
嘿,我把你这段Rails里的嵌套路由和控制器代码整理成清晰的Markdown格式了,方便你查看和复用:
Rails嵌套路由与店铺语言列表接口实现
路由配置(routes.rb)
这里配置了嵌套路由,让shop_languages资源隶属于shops资源之下:
resources :shops do resources :shop_languages end
对应的获取店铺语言列表的接口为:GET /shops/:shop_id/shop_languages
ShopLanguagesController代码(controllers/shop_languages_controller.rb)
控制器通过前置动作先关联到对应的店铺,再返回该店铺下的语言列表:
class ShopLanguagesController < ApplicationController before_action :find_shop def index json_response @shop.shop_languages, :ok, include: 'langua...' end # 通常你还需要定义私有方法find_shop来获取店铺实例,比如: # private # def find_shop # @shop = Shop.find(params[:shop_id]) # end end
注:find_shop前置动作会根据路由里的:shop_id参数找到对应的店铺实例,这样在index方法中就能直接通过Active Record关联关系,获取该店铺下的所有语言记录,最后用json_response返回JSON格式的响应。
内容的提问来源于stack exchange,提问作者belgoros
相关产品推荐
相关产品推荐

