它将存储在数据库(@ 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