我在一个控制器中有一个xyz方法。现在我有一个url'buy-m-get-n',它将调用xyz动作。
get "/buy-m-get-n" => "store#xyz"
现在我想为不同的m和n值调用相同的动作。例如:'buy-2-get-3','buy-4-get-5'。 m,n <= 10
我在routes.rb,
中试过这个[1..10].each do |x|
[1..10].each do |y|
get "/buy-#{x}-get-#{y}" => "store#xyz"
end
end
但它给了我新的网址,
/buy-1..10-get-1..10-free
答案 0 :(得分:1)
如果n
始终固定为1到10,请删除括号。 [1..10
]是一个Range
数组,1..10
是Range
。
1..10.each do |x|
1..10.each do |y|
get "/buy-#{x}-get-#{y}" => "store#xyz"
end
end
答案 1 :(得分:0)
你做的方式不是标准方式。
你为什么不这样做: -
get "/buy/:m/get/:n" => "store#xyz", as: :buy_get
通过这种方式,您可以将此URL用于m和n的不同值 例如: -
buy_get_path(m: 1, n: 2) #this will generate url like - /buy/:1/get/:2
buy_get_path(m: 3, n: 4) #this will generate url like - /buy/:3/get/:4
get 'buy-:m-get-:n', to: 'articles#buy_get', as: :buy_get
您可以将其用作: -
buy_get_path(m: 1, n: 2) # this will generate url like: - buy-1-get-2