Ruby on rails Rails通过post传递参数还是通过301重定向?

Ruby on rails Rails通过post传递参数还是通过301重定向?,ruby-on-rails,Ruby On Rails,我有一个链接,它将一个参数传递给我的帖子的显示操作: <%= link_to post_show_path( user.id, ref: user.ref ) do %> go to post <% end %> 投递 但这会创建URL:localhost:3000/post?ref=1445461 显然,这会造成重复,从而扼杀我的搜索引擎优化。我希望将该引用传递给控制器,但不在URL上显示它。我尝试使用方法post,但没有成功: <%= link_to

我有一个链接,它将一个参数传递给我的帖子的显示操作:

<%= link_to post_show_path( user.id, ref: user.ref ) do %>
  go to post
<% end %>

投递
但这会创建URL:localhost:3000/post?ref=1445461

显然,这会造成重复,从而扼杀我的搜索引擎优化。我希望将该引用传递给控制器,但不在URL上显示它。我尝试使用方法post,但没有成功:

<%= link_to post_show_path( user.id), ref: user.ref, method: :post do %>
 go to post
<% end %>

投递
它不传递参数[:ref]

首先,我做错了吗?我的语法错了吗?如果没有,我还有其他选择吗?如果是的话,你能帮我写下来吗

我想做一个301重定向,但是在show动作中重定向到同一个show动作显然会创建一个循环。我不喜欢为了“表演”而通过另一个动作


那我该怎么办?:)

默认情况下,
html
链接元素不
post
。如果您需要一个链接来模拟
post
请求,那么您可以使用
按钮\u来访问
rails
提供的
帮助程序。即使
button\u to
生成一个按钮标记,您也可以使用一些css样式,使其看起来像一个链接


有关更多信息,请参阅。

只需将
ref
参数添加到路径中:

<%= link_to "go to post", post_show_path(user.id, ref: user.ref), method: :post %>

更新:如果您需要的是多个URL指向同一页面(从SEO的角度来看),那么您可以使用规范URL,也可以使用301重定向,如所述,例如或。谷歌(和其他公司)将把这个页面作为一个页面进行索引,尽管多个URL会指向它。

这对我来说不起作用。如果我没有添加后续链接,那么所有链接的页面都不会被索引。啊哈,我想我现在明白你的意思了。。。请看我最新的答案。我在考虑这个问题,但它真的不优雅。我正试图找到一种更合适的方法;)
<%= link_to "go to post", post_show_path(user.id, ref: user.ref), rel: "nofollow" %>