0
道歉,但我一直堅持我認爲是一個簡單的修復。我正在構建一個rails應用程序,並且只是想測試當前登錄到我的應用程序的用戶是否具有名稱'Tom'。我有一個名爲Tom的用戶,當我與他一起登錄時,我被重定向到new_thing_url,表明會話名稱不是Tom。Rails活動記錄查詢(測試用戶登錄到給定的會話)
我已經試過user.name =「湯姆」以及和它似乎沒有工作。
而且,我使用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 %>
首先想到的。你確定它是'=='Tom''而不是'if'語句中的'user.try'子句嗎?如果你分開這些(可能通過嵌套if語句),你可能能夠縮小問題的範圍。 – GSP
只是試圖註釋掉user.try子句,並沒有運氣。問題的來源,據我所知是'==「湯姆」' – jfalkson
在這種情況下,你可以分享相關的視圖? –