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

application.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'ます。この場合、コントローラーのみを提供しましたが、アクション名がありません。

チュートリアルのこの部分で contact のアクションをまだ作成していない場合は、作成するまでこの行をコメントアウトするか、今すぐコントローラーを作成することができます。

最初のケースでは、コードは次のようになります

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

2 番目のケースでは、挿入する必要があります。

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

そしてレイアウトを作成します/app/views/static_pages/contact.html.erb

于 2013-03-18T21:30:39.643 に答える