Rails简化了路由条件

时间:2015-05-27 00:30:19

标签: ruby-on-rails

我目前正在将多个页面路由到同一个控制器方法:

type_regexp = Regexp.new([ :members, :businesses, :artists, :piercers, :models, :event_coverage].join('|'))
get ':type', to: 'users#group', constraints: { type: type_regexp }

每个人都是一个群组名称,其中' is_private'字段是假的。是否可以做这样的事情,所以我不必写出每个组名:

type_regexp = Regexp.new(Group.where('SELECT name WHERE is_private = false').join('|'))
get ':type', to: 'users#group', constraints: { type: type_regexp }

当然上面的内容永远不会奏效,希望我明白了。我希望能够在创建更多组并且必须更新路由文件时不用担心。

谢谢!

1 个答案:

答案 0 :(得分:0)

我相信您的路线是在应用程序启动时设置的,而不是每次请求时都会设置的。所以现在你无法做你的榜样。你应该在控制器中执行类似的操作。如果没有任何内容与您的正则表达式匹配,您只需呈现404