我有这条路线,它会覆盖资源生成的路线:
match "make_tiles(/:tile_type,(:finish))" => "tiles#new", :as => :make_tiles
这样就可以获得像/make_tiles/two_two,matte
但是我想选择使用:/make_tiles/two_two
。目前只有/make_tiles/two_two,
可以使用。
如何摆脱尾随的逗号要求?
答案 0 :(得分:3)
您不能使用逗号分隔字段,我不确定您为什么要这样做。逗号不是路径的非常好的字段分隔符。如果您真的坚持这样做,请将选项放入一个参数并手动分开:
match "make_tiles(/:tile_type_and_finish)" => "tiles#new", :as => :make_tiles
然后在您的控制器中
(tile_type,finish) = params[:tile_type_and_finish].split(",") if params[:tile_type_and_finish].present?
不允许使用的方法是rails在ActionDispatch :: Routing中将参数分隔符定义为常量:
SEPARATORS = %w( / . ? )
否则
match "make_tiles(/:tile_type(/:finish))" => "tiles#new", :as => :make_tiles
应该可以正常工作。