2010-08-14 7 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를 설정해야합니다. "before_filter"를 통해.

+0

내 컨트롤러에? I는이 두 가지있다 : 를 @user = User.new은 (PARAMS는 [: 사용자])과 사용자 User.find_by_screen_name_and_password = (@ user.screen_name @ user.password) – noloman

+1

User.new는 레코드를 생성하지 않는다 . 생성을 사용하거나 새 + 저장을 쌍으로 사용해야합니다. 레코드가 없으면 find_by_XXXX는 nil을 반환합니다. 따라서 실제로 그 두 가지를 연속적으로 실행하는지는 확실하지 않지만 그렇다면 제대로 작동하지 않습니다. – nirvdrum

+0

좋아, 간단한 @user = User.find (session [: user_id])로 해결되었습니다. 그럼에도 불구하고 사용자 로그인을 위해 로그인 버튼을 누르면 사용자 프로필로 리디렉션되지 않습니다. 나는 그걸로 조금 더 시간을 할애해야한다고 생각해. 고마워. – noloman