2012-03-14 119 views
0

我試圖爲我的網站設置登錄和密碼頁面。這將在索引頁面上。我有一個模型類:「用戶」和一個控制器類「users_controller」。rails:用戶的「登錄」和「密碼驗證」

,即時通訊試圖實施的行爲是這樣的: 用戶鍵入網站的URL,它打開索引頁面,如下圖所示。然後用戶登錄並被帶到不同的頁面,他們可以訪問該網站的內容。

現在的問題是我需要放置在「def index」函數中,以便它接受窗體的參數並將這些參數傳遞給另一個稱爲「self.authenticate(parameters)」的函數來檢查並返回狀態

enter image description here

下面是users_controller代碼

class UsersController < ApplicationController 

def index 
    @user = User.new 

    respond_to do |format| 
     format.html 
     #index.html.erb 
    end 
end 


def show 
    @user = User.find(params[:id]) 
    @title = @user.name 
end 

def edit 
    @user = User.find(params[:id]) 
    @title = @user.name 
end 

def destroy 
    @user = User.find(params[:id]) 
end 

def new 
    @user = User.new 
    @title = "Sign Up" 

end 

def create 

end 

她e的形式如下:

<html> 

<h1>Returning Users- Sign In</h1> 
<%= form_for(@user) do |f| %> 

<div class="field"> 
    <%=f.label :email %><br/> 
    <%= f.text_field :email %> 
</div> 

<div class = "field"> 
    <%= f.label :password %><br/> 
    <%= f.password_field :password %> 
</div> 

<div class = "actions"> 
    <%= f.submit "Sign In" %> 
</div> 
<% end %> 



<h1>New Users- Sign Up</h1> 
<%= form_for(@user) do |f| %> 

<div class="field"> 
    <%=f.label :name %><br/> 
    <%= f.text_field :name %> 
</div> 
<div class="field"> 
    <%=f.label :email %><br/> 
    <%= f.text_field :email %> 
</div> 

<div class = "field"> 
    <%= f.label :password %><br/> 
    <%= f.password_field :password %> 
</div> 

<div class = "field"> 
    <%= f.label :password_confirmation, "Confirm Password" %><br/> 
    <%= f.password_field :password_confirmation %> 
</div> 

<div class = "actions"> 
    <%= f.submit "Sign Up" %> 
</div> 

<%end%> 


    <br/> 
<%= debug(params) if Rails.env.development? %> 
<br/> 

    </body> 

任何幫助將是偉大的。謝謝

回答

0

看看Ryan Bates最近的RailsCast Authentication from Scratch。您還可以使用通用身份驗證插件,如AuthLogicDevise

+0

如果有任何免費資源,會很棒。您建議的上述鏈接是視圖鏈接的付費。 – banditKing 2012-03-14 15:50:24

+0

RailsCast鏈接現在只是訂閱者,你是對的,但Authlogic和Devise鏈接不是。谷歌他們的教程等我強烈建議使用AuthLogic或類似的,而不是滾動自己的身份驗證,因爲a)它不是有趣的b)它與你的應用程序的獨特功能沒有關係c)你可能會把它公雞向上。沒有冒犯性,要想獲得絕對正確的想法就比想象的要困難得多。 – 2012-03-14 16:39:50

+0

感謝您的諮詢 – banditKing 2012-03-15 02:24:57

0

我打算向你解釋你想做什麼。

您可以通過使用哈希PARAMS獲得PARAMS:

params[] 

然後,你可以通過獲取一個字段的值,它的標識,如:

params[:id] 

params[:name] 

現在將其傳遞給self.authenticate(parameters)(我不知道這個方法是如何實現的mented)。