【发布时间】:2015-03-12 16:36:27
【问题描述】:
我构建了一个根据params 呈现不同的页面。逻辑是这样的:
<% if params[:x] == "1" %>
<!--render version A-->
<% elsif params[:x] == "2" %>
<!--render version B-->
<% elsif params[:x] == "3" %>
<!--render version C-->
<% end %>
我希望每个版本都有两个链接到其他两个版本,所以网址应该有不同的参数。我有一个url字符串original_url,即:
"localhost:3000/page?x=1"
并希望根据params 替换其参数。其他两个版本应该是:
"localhost:3000/page?x=2"
"localhost:3000/page?x=3"
如何从original_url 中消除模式?x=[number] 并将其替换为其他内容?
对于版本 1,我可以这样做
request.original_url.sub("?x=1", "?x=2")
然后
request.original_url.sub("?x=1", "?x=3")
但是那在其他两个版本上就行不通了。
【问题讨论】:
-
为什么需要更换这个?请解释您的用例,因为您显然可以使用
request.original_url.gsub(/\?x=./,'?x=YOUR_NUMBER_HERE') -
@engineersmnky 我将其包含在原始问题中,但有人出于某种原因将其编辑了...我将其添加回来。
标签: ruby-on-rails ruby regex string erb