我有一个包含几个分页新闻的新闻页面。我想允许用户查看新的详细信息,当他点击“后退”按钮时,视图会转到用户之前所在的页面。我的想法是在link_to中添加一个参数,将用户带到显示页面上,但这似乎不起作用:
<%= link_to news_path(new.id, :back_page => params[:page]) do %>
<span class="glyphicon glyphicon-eye-open"></span>
<% end %>
我希望呈现的网址是这样的:news/2?back_page=2
。但我总是得到news/2
。
我该怎么做?
感谢。
修改
以下是news_path
在我的路线中的样子:http://pastebin.com/EAhDQyf4
答案 0 :(得分:1)
这不是link_to的问题,您可以在路线文件中发布news_path
的样子吗?
理想情况下,news_path(new.id, :back_page => params[:page])
以上应该按预期生成路径。
另一种方法是,但我不会推荐它。因为你应该能够使用路径助手来实现它。
<%= link_to "something", "#{news_path(new.id)}?back_page=#{params[:page]}" do %>
<span class="glyphicon glyphicon-eye-open"></span>
<% end %>
答案 1 :(得分:1)
我解决了我的问题。确保您为附加参数赋予的值。当我转到新闻索引页面时,即使所选页面是第一个页面,也没有参数page=1
。该参数仅在单击其他页面时出现(或者您转到另一个页面并返回到第一个页面)。如果你给link_to一个额外的参数,它的值什么都没有,渲染的链接将是(在我的情况下):
<a href="/news/2" />
而不是:
<a href="/news/2?back_page=" />
所以你可能会被困,就像我一样。
答案 2 :(得分:0)
这里的例子:
link_to "Nonsense search", searches_path(foo: "bar", baz: "quux")
# => <a href="/searches?foo=bar&baz=quux">Nonsense search</a>