抱歉,但我一直坚持我认为很容易解决的问题。我正在构建一个 Rails 应用程序,只是想测试当前登录到我的应用程序的用户是否具有名称“Tom”。我有一个名为 Tom 的用户,当我用他登录时,我被重定向到 new_thing_url,表明会话名称不是 Tom。
我也尝试过 user.name="Tom" ,但它似乎不起作用。
另外,我正在使用 Bcrypt 进行身份验证
我在 sessions_controller.rb 中的创建会话方法
def create
user=User.find_by(name: session[:name])
if session[:name] == 'Tom' and user.try(:authenticate,(params[:password]))
session[:user_id] = user.id
session[:name] = user.name
redirect_to admin_url
else if user and user.authenticate(params[:password])
redirect_to new_thing_url
else
redirect_to login_url, alert: "Invalid user/password combo"
end
end
end
\
<% if flash[:alert] %>
<p id="notice"><%= flash[:alert] %></p>
<% end %>
<%= form_tag do %>
<fieldset>
<legend>Please Log In</legend> <div>
<%= label_tag :name, 'Name:' %>
<%= text_field_tag :name, params[:name] %>
</div>
<div>
<%= label_tag :password, 'Password:' %>
<%= password_field_tag :password, params[:password] %>
</div> <div>
<%= submit_tag "Login" %> </div>
</fieldset>
<% end %>