【问题标题】:Ruby on Rails: No Route Matches Error when Route ExistsRuby on Rails:路由存在时没有路由匹配错误
【发布时间】:2016-08-28 23:32:59
【问题描述】:

我正在尝试链接到一系列非常简单的welcome#___ 类型页面,并且不断收到No route matches [GET] ... 错误。

我正在尝试的三个链接是:

<%= link_to 'welcome_personality_path' do %>
   ...
<% end %>

<%= link_to 'welcome_game_path' do %>
   ...
<% end %>

<%= link_to 'welcome_body_path' do %>
   ...
<% end %>

即使我的 rake 路由显示这些路由存在,我也会收到每个错误的 no route matches 错误:

      welcome_index GET    /welcome/index(.:format)         welcome#index
welcome_personality GET    /welcome/personality(.:format)   welcome#personality
       welcome_game GET    /welcome/game(.:format)          welcome#game
       welcome_body GET    /welcome/body(.:format)          welcome#body
  welcome_resources GET    /welcome/resources(.:format)     welcome#resources
      welcome_about GET    /welcome/about(.:format)         welcome#about

收到错误消息似乎是一件非常简单的事情,所以我很困惑。这些页面都没有任何参数或需要特殊权限。

【问题讨论】:

    标签: ruby-on-rails ruby hyperlink routing


    【解决方案1】:

    删除路径周围的引号(welcome_personality_path,而不是 "welcome_personality_path"):

    <%= link_to welcome_personality_path do %>
       ...
    <% end %>
    

    【讨论】:

    • 啊啊啊!我知道这很简单。谢谢!
    • 提醒一下,link_to 助手实际上接收一个字符串参数。注意welcome_personality_path是一个方法调用,它返回一个包含你想要的路径的字符串。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多