2009-11-23 70 views
1

我下面的教程登錄頁面紅寶石:問題上軌

def authenticate 
02.  #User.new(params[:userform]) will create a new object of User, retrieve values from the form and store it variable @user. 
03.  @user = User.new(params[:userform]) 
04.  #find records with username,password 
05.  valid_user = User.find(:first,:conditions => ["user_name = ? and password = ?",@user.user_name, @user.password]) 
06. 
07.  #if statement checks whether valid_user exists or not 
08.  if valid_user 
09.  #creates a session with username 
10.   session[:user_id]=valid_user.user_name 
11.  #redirects the user to our private page. 
12.   redirect_to :action => 'private' 
13.  else 
14.   flash[:notice] = "Invalid User/Password" 
15.   redirect_to :action=> 'login' 
16.  end 
17.end 

,並用正確的用戶名運行:http://visionmasterdesigns.com/tutorial-create-a-login-system-in-ruby-on-rails/ 當我嘗試做這部分創建一個登錄頁面

和登錄,它告訴我,

的ActiveRecord :: RecordNotFound在 UsersController#私人

找不到用戶與ID =私人

我希望它重定向到private.html.erb網頁搜索不到它!

感謝所有幫助

+0

您的控制器中是否有「私有」方法? – 2009-11-23 20:22:06

+0

你在教程中的哪一步?步驟7向控制器添加私有方法。 – StevenWilkins 2009-11-23 20:27:27

+0

afaik控制器中的私有方法只是爲了確保只有登錄的用戶才能訪問private.html.erb頁面 – Lilz 2009-11-23 20:33:17

回答

3

我想你想render :action => 'private',而不是重定向。

+0

非常感謝!非常非常讚賞! – Lilz 2009-11-23 20:32:16