【问题标题】:link_to with controller_name and action name not working带有控制器名称和操作名称的链接到不起作用
【发布时间】:2017-08-04 18:00:05
【问题描述】:

我正在将 rails 3.2 应用程序升级到 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)

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

【问题讨论】:

  • 保持代码不变。 Rails 4.x 不需要key: value 语法。
  • 我已经解决了这个问题。实际上我正在使用导致此问题的 gem 'bartt-ssl_requirement'。感谢 Sebastián Palma 和 MZaragoza 的帮助。
  • 你可以接受@AjinathJedhe的答案。

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


【解决方案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" %>

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多