我希望能够使用数据库中的项目来生成一些路由。因此,如果我添加了新类型,就不必手动创建新的路由。我有一些优先级较低的路由,所以我不能只使用match ":type",:to => "items#search“。我找了这个,但找不到任何东西,所以我就试了试,它起作用了。
Type.find(:all).each do |type|
name = type.name
match "#{name}", :to => "items#search"
end我的问题是,这样做是不是一种糟糕的做法,如果是的话,为什么?
谢谢
编辑:尽管我已经接受了一个答案,但我可能应该补充说,我真正想要完成的是将类型的名称作为参数传递给路由,如下所示:
Type.find(:all).each do |type|
name = type.name
match "#{name}", :to => "items#search", :type => name
end发布于 2012-09-30 09:01:57
因为所有不同的项目都使用相同的路线,所以很好。
因此,名为“items”的数据库表中的所有行都将使用相同的路由。
如果你有另一个模型,比如说'price_ranges‘,你可以有额外的路由来访问它的方法。
https://stackoverflow.com/questions/12657698
复制相似问题