1

私はこの記事http://asciicasts.com/episodes/160-authlogic)に従っていますが、気の利いたジェネレーターは使用していません。

User モデルを作成しましたが、localhost:3000/users/newページは正常に動作します。

しかし、開こうとするlocalhost:3000/loginと、ページは空です。ソースも空です。

サイトからソースをコピーしただけです。

ルート.rb

map.login 'login', :controller => 'user_sessions', :action => 'new'
map.logout 'logout', :controller => 'user_sessions', :action => 'destroy'
map.resources :user_sessions
map.resources :users

user_sessions_controller.rb

class UserSessionsController < ApplicationController
  def new
    @user_session = UserSession.new
  end

  def create
    @user_session = UserSession.new(params[:user_session])
    if @user_session.save
      flash[:notice] = "Successfully logged in."
      redirect_to root_url
    else
      render :action => 'new'
    end
  end

  def destroy
    @user_session = UserSession.find
    @user_session.destroy
    flash[:notice] = "Successfully logged out."
    redirect_to root_url
  end
end

/views/user_sessions/new.html.erb

<% form_for @user_session do |f| %>
  <%= f.error_messages %>
  <p>
    <%= f.label :username %><br />
    <%= f.text_field :username %>
  </p>
  <p>
    <%= f.label :password %><br />
    <%= f.password_field :password %>
  </p>
  <p><%= f.submit "Submit" %></p>
<% end %>

コードはサイトと同じです。

サーバー コンソールは、ビューがレンダリングされていることを示しています。

149 ミリ秒で 200 OK を完了 (ビュー: 145.5 ミリ秒 | ActiveRecord: 3.2 ミリ秒)

ログインフォームがまったく表示されないのはなぜですか?

アップデート

新しいアクション 'index' を user_sessions コントローラー (さらに index.html.erb) に追加した後、開くlocalhost:3000/user_sessions/indexと以下のメッセージが表示されます。

不明なアクション 表示に応答したアクションはありません。アクション: create、destroy、index、および new

そして、これがWEBrickの出力です

UserSessionsController#show の処理 (2010-01-22 12:47:10 の 127.0.0.1 の場合) [GET]

パラメータ: {"id"=>"index"}

ActionController::UnknownAction (表示に応答するアクションはありません。アクション: 作成、破棄、索引付け、および新規作成):

4

2 に答える 2

2

私はその理由を見つけました。

Views / layouts / application.html.erbには何もありませんでした。ファイルは存在します、tho。

于 2010-01-22T06:30:00.777 に答える
1

/views/new.html.erbに配置する必要がありますviews/user_sessions/new.html.erb

于 2010-01-22T02:59:36.523 に答える