在路由中使用ActiveRecord

时间:2012-09-30 00:34:34

标签: ruby-on-rails ruby-on-rails-3 routes

我希望能够使用数据库中的项来生成一些路线。所以如果我添加新类型,我不必手动创建新路由。我有一些优先级较低的路由,所以我不能只使用匹配“:type”,:to => “项目#搜索”。我找了这个,却找不到任何东西,所以我只是尝试了它并且有效。

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

1 个答案:

答案 0 :(得分:1)

对于使用相同路线的物品,所有不同的物品都可以。

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

如果您有其他型号,请说'price_ranges',您可以使用其他路线来访问其方法。