如何在rails上的ruby中生成动态URL?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在rails上的ruby中生成动态URL?相关的知识,希望对你有一定的参考价值。
我在一个控制器中有一个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
答案
如果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
另一答案
你的方式不是标准方式。
为什么你不这样做: -
get "/buy/:m/get/:n" => "store#xyz", as: :buy_get
通过这种方式,您可以将此网址用于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
as per your requirement: -
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
以上是关于如何在rails上的ruby中生成动态URL?的主要内容,如果未能解决你的问题,请参考以下文章
在 Ruby on Rails Web 应用程序中生成图表的首选方式是啥?
在 ruby/ActiveRecord 中生成类似 Instagram 或 Youtube 的不可猜测的字符串 ID