0

我希望能够使用数据库中的项目来生成一些路线。因此,如果我添加新类型,我不必手动创建新路线。我有一些优先级较低的路由,所以我不能只使用 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
4

1 回答 1

1

很好,因为所有不同的项目都使用相同的项目路线。

因此,名为“items”的数据库表中的所有行都将使用相同的路由。

如果你有另一个模型,比如“price_ranges”,你可以有额外的路径来访问它的方法。

于 2012-09-30T01:01:56.630 回答