2010-08-14 71 views
0

我在尝试做一个小型网络站点的示例,当我登录用户时,它应该重定向并显示其配置文件,但出现以下错误:在Ruby on Rails联网网站登录后出现NoMethodError

NoMethodError in User#index

Showing app/views/user/index.html.erb where line #5 raised:

undefined method `screen_name' for nil:NilClass Extracted source (around line #5):

2: Your basic information 3: 4:

    5:
  • Screen name: <%= @user.screen_name %>
  • 6:
  • Email: <%= @user.email %>
  • 7:
  • Password: **********
  • 8:

非常感谢提前!

回答

1

您的@user对象为“nil”。您需要确保您设置@user,例如通过“before_filter”。

+0

在我的控制器? 我有此二: @user = User.new(PARAMS [:用户]) 和 用户= User.find_by_screen_name_and_password(@ user.screen_name,@ user.password的) – noloman 2010-08-14 14:11:26

+1

User.new不创建记录。你需要使用create,或者配对new + save。如果记录不存在,则find_by_XXXX将返回零。所以,真的不知道你是否真的在紧接着运行这两个,但如果是这样的话,它不适合你。 – nirvdrum 2010-08-14 14:40:39

+0

好的,它已经通过一个简单的@user = User.find(session [:user_id])解决了。 不过,现在当我按登录按钮登录用户时,我从来没有被重定向到用户配置文件。我想我需要多花点时间,非常感谢! – noloman 2010-08-14 18:08:24