它將存儲在數據庫(@ submission.password)中的實際密碼與用戶從視圖(params [:password])輸入的密碼進行比較。 如果它們相同,則提交被刪除。Rails:你可以檢查簡單字符串比較方法的語法嗎?
這是字符串比較方法。
def compare_password
if @submission.password == params[:password] # This line is wrong.
@submission = Submission.find(params[:id])
@submission.destroy
redirect_to(@submission, :notice => 'Listing deleted successfully')
else
redirect_to(@submission, :alert => 'Password is incorrect.')
end
end
這是視圖。
<%form_tag "/submissions/compare_password" do%>
<%=text_field_tag :password, params[:password]%>
<%=submit_tag "Delete"%>
<%end%>
執行錯誤我得到的是這個。
undefined method `password' for nil:NilClass
編輯
本來我的routes.rb這個樣子
resources :submissions do
collection do
post :compare_password
end
end
現在我改
resources :submissions do
member do
post :compare_password
end
end
您是否將實際密碼存儲在數據庫中? – Gareth 2010-12-14 20:25:23
是的。提交的內容不會永久存儲在數據庫中,我將每週大約刪除它們。所以他們的損失並不是什麼大問題。 – 2010-12-14 20:45:03