Ruby Rails redirect_to 方法

Ruby on Rails redirect_to method

假设我的控制器中有这一行

redirect_to "/sessions/try", provider: 5

这是我的 try.html.erb

<h1>try</h1>
<%= provider %>

显然这行不通,但是我如何让 'provider' 出现在我的 html 文件中?

将提供商作为参数发送

redirect_to "/sessions/try?provider=5"

比 try.html.erb

<h1>try</h1>
<%= params[:provider] %>

如果您没有 /sessions/try 的命名路由,则必须将参数硬编码到传递给 redirect_to 的字符串中:

redirect_to "/sessions/try?provider=5"

hash = { provider: 5 }
redirect_to "/sessions/try?#{hash.to_param}"

但是如果你已经将路由命名为try_sessions_path,那么你可以使用:

redirect_to try_sessions_path(provider: 5)

在您看来,您将获得 params 散列中的密钥:

<%= params[:provider] %>