0

Railsでアプリ「ゲストブック」を作成し、「rails gコントローラーエントリ」を使用してコントローラーを作成しました。その後、app/views/entries/ に index.html を作成し、その中に次のように書きました:-

 <h1>Hello <%= @name %></h1>
<%= form_tag :action => 'sign_in' do %>
<p>Enter your name:
<%= text_field_tag 'visitor_name', @name %></p>
<%= submit_tag 'Sign in' %>
<% end %>

そして、entries_controller.rb には次のように書かれています:-

class EntriesController < ApplicationController
    def sign_in
        @name = params[:visitor_name]
    end
end

その後、「rails s」を実行して次の場所に移動します:-

localhost:3000/entries/

そこにあるはずの適切なビューが表示されます。

名前を入力してボタンを押すと、ルーティングされlocalhost:3000/entries/sign_in、次のエラーが表示されます:-

テンプレートがありません

{:locale=>[:en]、:formats=>[:html]、:handlers=>[:erb、:builder、:coffee]} のテンプレート エントリ/sign_in、application/sign_in がありません。検索場所: * 「/home/redblink/rbtest/guestbook/app/views」

何が起こっているのか教えてください???

4

2 に答える 2

0

/home/redblink/rbtest/guestbook/app/views/sign_in.html.erbユーザーに表示するコンテンツを含む ERB テンプレートを作成する必要があります。

于 2012-08-02T13:50:46.547 に答える
0

修理:

sign_in.html.erbこのエラーは、Rails サーバーがディレクトリ内にある名前のテンプレートを見つけることができないために発生しますapp/views/entries。作成する必要があります。

説明:

デフォルトでは、レールはアクションと同じ名前のテンプレートを見つけようとします。つまり、あなたのケースでは sign_in です。この既定のテンプレートを作成またはレンダリングしたくない場合はrender、アクションでメソッドを使用して、レンダリングする別のテンプレートを指定する必要があります。renderメソッドは ActionController::Base クラスで定義されます

于 2012-08-03T06:30:45.630 に答える