def create
user = User.find_by_name(params[:name])
if user and user.authenticate(params[:password])
session[:user_id] = user.id
redirect_to admin_url
else
redirect_to login_url, alert: "Invalid user/password combination"
end
end
这里为什么用户被声明为局部变量而不是实例变量@user?
答案 0 :(得分:2)
可能是因为视图不需要访问user
对象。它只是实例化它以查看它是否是一个有效的用户并且它被正确验证,然后它重定向到管理页面。
答案 1 :(得分:0)
因为您通常不需要访问操作之外的用户变量
答案 2 :(得分:0)
答案是因为此操作无需查看。该操作包含一个if else块,它们都重定向,因此实例变量没有用。