即使视图和控制器存在,页面呈现为空。

时间:2010-01-22 02:54:51

标签: ruby-on-rails actionview

我正在关注this articlehttp://asciicasts.com/episodes/160-authlogic),我没有使用漂亮的发电机。

我已完成用户模型,localhost:3000/users/new页面工作正常。

但是当我尝试打开localhost:3000/login时,页面只是空的。来源也是空的。

我刚从网站上复制了来源。

的routes.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 %>

代码与网站相同。

服务器控制台显示正在呈现视图:

  

在149ms完成200 OK(浏览次数:145.5ms | ActiveRecord:3.2ms)

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

更新

将新动作'index'添加到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”=&gt;“index”}

     

ActionController :: UnknownAction(No   行动回应显示。操作:   创建,销毁,索引和新):

2 个答案:

答案 0 :(得分:2)

我找到了原因。

Views / layouts / application.html.erb中没有任何内容,该文件存在,tho。

答案 1 :(得分:1)

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