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" %>