我根据params
构建了一个呈现不同的页面。逻辑是这样的:
<% if params[:x] == "1" %>
<!--render version A-->
<% elsif params[:x] == "2" %>
<!--render version B-->
<% elsif params[:x] == "3" %>
<!--render version C-->
<% end %>
我希望每个版本都有两个链接到其他两个版本的链接,因此网址应该有不同的参数。我有一个网址字符串original_url
,即:
"localhost:3000/page?x=1"
并希望根据params
替换其参数。其他两个版本应该是:
"localhost:3000/page?x=2"
"localhost:3000/page?x=3"
如何从?x=[number]
中删除模式original_url
并将其替换为其他内容?
对于版本1,我可以
request.original_url.sub("?x=1", "?x=2")
然后
request.original_url.sub("?x=1", "?x=3")
但是那不会对其他两个版本起作用。
答案 0 :(得分:-1)
我会为链接
执行此操作<%= ([1,2,3]- [params[:x]]).each do |link_number| %>
<%= link_to "Version #{link_number}", "/page?x=#{link_number}" %>
<% end %>
这样,每次加载页面时,都会存在与其他2个版本的链接。
你可以通过控制器处理部分(看起来更好)或使用类似的东西:
<%= render "version_#{['A','B','C'][params[:x] - 1]}" %>
如果没有更好地理解这个问题,我无法超越这一点。