1

我正在关注这篇文章http://asciicasts.com/episodes/160-authlogic),但我没有使用漂亮的生成器。

我已经完成了用户模型和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 毫秒)

为什么登录表单根本不显示?

更新

将新操作“索引”添加到 user_sessions 控制器(也加上 index.html.erb)后,如果我打开会localhost:3000/user_sessions/index显示下面的消息。

未知动作 没有动作响应显示。操作:创建、销毁、索引和新建

而且,这是 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 中没有任何内容,该文件存在。

于 2010-01-22T06:30:00.777 回答
1

/views/new.html.erb应位于views/user_sessions/new.html.erb

于 2010-01-22T02:59:36.523 回答