1

我正在按照这本书学习开发 Rails 应用程序:http ://ruby.railstutorial.org 目前我在第 6 章。

一切都很顺利,直到我想使用“rails s”命令查看应用程序。运行命令后出现以下错误:

'default_controller_and_action': missing :action (ArgumentError)

我早些时候遇到过这个问题,并通过更正“routes.rb”中的错误来解决它。但这次我无法解决它;(

路线.rb

SampleApp::Application.routes.draw do

  get "users/new"

  root to: 'static_pages#home'

  match '/signup', to: 'users#new'

  match '/home', to: 'static_pages#home'

  match '/help', to: 'static_pages#help'

  match '/about', to: 'static_pages#about'

  match '/contact', to: 'static_pages#'

end

应用程序.html.erb

    <!DOCTYPE html>
    <html>
      <head>
        <title><%= full_title(yield(:title)) %></title>
        <%= stylesheet_link_tag    "application", media: "all" %>
        <%= javascript_include_tag "application" %>
        <%= csrf_meta_tags %>
        <%= render 'layouts/shim' %>

     </head>
      <body>
       <%= render 'layouts/header' %>
       <div class="container">
          <%= yield %>
          <%= render 'layouts/footer' %>
          <%= debug(params) if Rails.env.development? %>
        </div>
      </body>
    </html>

_header.html.erb

    <header class="navbar navbar-fixed-top navbar-inverse">
  <div class="navbar-inner">
    <div class="container">
      <%= link_to "sample app", root_path, id: "logo" %>
      <nav>
        <ul class="nav pull-right">
          <li><%= link_to "Home",    root_path %></li>
          <li><%= link_to "Help",    help_path %></li>
          <li><%= link_to "Sign in", '#' %></li>
        </ul>
      </nav>
    </div>
  </div>
</header>

_footer.html.erb

<footer class="footer">
  <nav>
    <ul>
      <li><%= link_to "About",   about_path %></li>
      <li><%= link_to "Contact", contact_path %></li>
      <li><a href="#/">News</a></li>
    </ul>
  </nav>
</footer>

我希望有人能帮我解决这个问题!:)

提前致谢!

4

1 回答 1

4
match '/contact', to: 'static_pages#'

缺少一个动作。

它有形式'controller#action'。在这种情况下,您只提供了控制器,但缺少操作名称。

如果在本教程的这一部分中您还没有为联系人创建操作,您可以在创建之前注释掉这一行,或者现在为它创建一个控制器。

在第一种情况下,代码将是

#   match '/contact', to: 'static_pages#'

在第二种情况下,有必要插入

# app/controllers/static_pages_controller.rb
...
def contact
end

并在/app/views/static_pages/contact.html.erb

于 2013-03-18T21:30:39.643 回答