我喜欢我的控制器使用请求 URL 包含的所有 id,而无需指定控制器路由。
我的路线:
...
resources :users do
resources :properties
end
...
我的控制器是标准的脚手架控制器。让我们看一下索引方法:
def index
properties = Properties.all
respond_to do |format|
format.json { render json: properties }
end
end
def show
@property = Property.find(params[:id])
respond_to do |format|
format.json { render json: property }
end
end
像/users/10/properties这样的路由的问题是它没有获取 10 的 user_id 并且没有使用它来创建查询。它查询所有属性而不是子集。
我还简化了修改 url 以查看其他用户属性,只是玩弄“id”,不需要找到匹配的“user_id”+“id”,因为“user_id”被忽略了。
当然,我可以在代码中明确表达这一点,但这会使其成为特定路线。我也喜欢在非嵌套路由的上下文中使用控制器。
有标准的食谱来处理吗?喜欢查看所有以“_id”结尾的参数吗?