我可以通过两种方式过滤我网站上的产品:
www.expamle.com/products?category=cars&brand=hot_wheels
或:
www.expamle.com/products/car/hot_wheels
最佳实践是什么?为什么?
如果我应用第二个解决方案,我如何知道传递的参数的类型是categorybrand
谢谢。

最佳答案

如果它保持原样,第二个选择,目前为止。不仅是为了优雅,也为了搜索引擎优化。
也就是说,当你开始第三次和第四次争论时,你显然需要一个搜索。您选择使用全文搜索还是更像带有复选框的高级搜索取决于您的项目。我倾向于全文搜索,但如果你想坚持自己的设计,并且不再添加任何参数,可以这样做:
您将根据设置的路由获取参数。

# config/routes.rb
get 'products/:category/:brand', to: 'products#index'

# app/controllers/products_controller.rb
def index
  @products = Products.where(category: params[:category]).where(brand: params[:brand])
end

更新
如果category和brand都是可选的且不依赖,则可以将category和brand合并到标记模型中。更加灵活。产品(/:标签(/:标签(/:标签))’。

关于ruby-on-rails - 过滤时查询字符串或绑定(bind)参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14673914/

10-11 10:56
查看更多