link_to与controller_name和操作名称不起作用

时间:2017-08-04 18:00:06

标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-3.2 rails-migrations

我正在努力将rails 3.2 app升级到rails 4.2。我坚持一个问题。 link_to与控制器和操作名称不起作用

<%= link_to "Login", :controller => "user", :action => "login" %>

这是我想要转换为rails 4代码的链接。使用相同的方式。

我试过这种方式。

<%= link_to "Login", { controller: "user", action: "login" } %>

它的误差低于:

ArgumentError: wrong number of arguments (given 2, expected 0..1)

是否有人遇到过此问题。我有谷歌,但没有解决这个问题。

2 个答案:

答案 0 :(得分:1)

尝试使用controlleraction作为选项,而不是哈希:

<%= link_to 'Login', controller: 'user', action: 'login' %>

或者您也可以检查用户#login的具体路线,并将其作为第二个选项传递。

答案 1 :(得分:1)

我正在查看文档https://apidock.com/rails/v4.0.2/ActionView/Helpers/UrlHelper/link_to

<%= link_to "Profile", controller: "profiles", action: "show", id: @profile %>
# => <a href="/profiles/show/1">Profile</a>

你应该可以做到

<%= link_to "Login",  controller: "user", action: "login" %>