2015-04-04 19 views
0

混合我有在軌道上的問題。我正在實施資源。新/創建操作已完成。現在我正在編輯/更新操作。軌單一認證與編輯

我希望用戶必須輸入該資源的密碼,那麼他就可以編輯值。

無論是在兩個網站,所以第一個「輸入密碼」,之後,他可以更新值,或只是在那裏,他必須輸入正確的密碼,可以更新值的一個網站。

但我不知道如何實現這一目標的最佳途徑。

您有任何提示嗎?我還是個初學者。

+0

因此,沒有每個資源有一個密碼,或者你的意思是用戶的密碼形式? – Drenmi 2015-04-04 12:18:11

+0

每個資源都有一個密碼。沒有用戶。只有資源有一個。資源只是一個有密碼的文本。只有擁有密碼的人才能編輯它 – Chris 2015-04-04 13:02:40

回答

0

只要有一個:在PARAMS密碼字段。然後在你的控制器中你可以做到這一點。

def update 
    raise Unauthorized unless user.authenticate(params[:password]) 
    #normal update stuff 
end 

您將加載用戶並定義在這種情況下未授權錯誤。如果您願意走這條路線,您也可以渲染出並返回閃光燈。

在你只需要加一個輸入字段

<%= f.text_field :password %> 
+0

嗨!感謝您的回答。不,我不使用設計,我遵循邁克爾哈特爾的教程。他正在實施他自己的認證系統並使用bcrypt gem作爲密碼。 – Chris 2015-04-04 14:40:04

+0

與bcyrpt – Austio 2015-04-04 14:41:04

+0

更新我可能就必須有所有我的資源和一個頁面上的密碼字段的表單更新域。那麼當用戶編輯資源並輸入密碼並提交時,我的控制器必須檢查密碼是否正確,如果正確,資源會被更新。那是對的嗎 ? – Chris 2015-04-04 14:41:29