2010-12-09 54 views
0
<% form_for @User do |f| %> 
    <%= f.error_messages %> 
    <p> 
     <%= f.label :username %> 
     <%= f.text_field :password %> 
    </p> 
    <p> 
     <%= f.label :password %> 
     <%= f.password_field :password %> 
    </p> 

    <%= f.submit 'Login' %> 
<% end %> 

,我发现了错误:的Rails的form_for帮助下,登录页面无法正常工作

undefined method `model_name' for NilClass:Class 

我user_controller.rb是:

def login 
end 

回答

3

首先,你不应该使用@User,正如在ruby约定中,大写字母反映常量,而变量使用小写字母。所以更好的@user而不是@User。 (当然使用@User程序应该运行...)

错误告诉你,你通过了nil对象到form_for。看起来你没有初始化@User对象,所以它是nil

def login 
    @User = User.new 
end 

这应该没问题,告诉我是否。