使用 link_to 传递附加参数
Pass additional parameters with link_to
我有一个新闻页面,其中包含几条带分页的新闻。我想让用户查看新的详细信息,当他单击 "back" 按钮时,视图会转到用户之前所在的页面。我的想法是向 link_to 添加一个参数,将用户带到显示页面,但这似乎不起作用:
<%= link_to news_path(new.id, :back_page => params[:page]) do %>
<span class="glyphicon glyphicon-eye-open"></span>
<% end %>
我希望 url 渲染成这样:news/2?back_page=2
。但我总是得到 news/2
.
我该怎么做?
谢谢。
编辑
这是 news_path
在我的路线中的样子:http://pastebin.com/EAhDQyf4
此处示例:
link_to "Nonsense search", searches_path(foo: "bar", baz: "quux")
# => <a href="/searches?foo=bar&baz=quux">Nonsense search</a>
嗯,这不是 link_to 的问题,你能 post 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 %>
我解决了我的问题。确保您赋予附加参数的值是正确的。当我转到新闻索引页面时,即使选择的页面是第一页,也没有参数page=1
。该参数仅在单击不同页面时出现(或者您转到另一个页面并返回到第一个页面)。如果你给 link_to 一个额外的参数并且它的值是空的,渲染的 link 将是(在我的例子中):
<a href="/news/2" />
而不是:
<a href="/news/2?back_page=" />
所以你可能会被困,就像我一样。
我有一个新闻页面,其中包含几条带分页的新闻。我想让用户查看新的详细信息,当他单击 "back" 按钮时,视图会转到用户之前所在的页面。我的想法是向 link_to 添加一个参数,将用户带到显示页面,但这似乎不起作用:
<%= link_to news_path(new.id, :back_page => params[:page]) do %>
<span class="glyphicon glyphicon-eye-open"></span>
<% end %>
我希望 url 渲染成这样:news/2?back_page=2
。但我总是得到 news/2
.
我该怎么做?
谢谢。
编辑
这是 news_path
在我的路线中的样子:http://pastebin.com/EAhDQyf4
此处示例:
link_to "Nonsense search", searches_path(foo: "bar", baz: "quux")
# => <a href="/searches?foo=bar&baz=quux">Nonsense search</a>
嗯,这不是 link_to 的问题,你能 post 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 %>
我解决了我的问题。确保您赋予附加参数的值是正确的。当我转到新闻索引页面时,即使选择的页面是第一页,也没有参数page=1
。该参数仅在单击不同页面时出现(或者您转到另一个页面并返回到第一个页面)。如果你给 link_to 一个额外的参数并且它的值是空的,渲染的 link 将是(在我的例子中):
<a href="/news/2" />
而不是:
<a href="/news/2?back_page=" />
所以你可能会被困,就像我一样。