現在我試圖創建一個登錄表單,但是當我運行我的代碼時,它會拋出:[can't cast Hash to string]
我該如何解決這個問題?Ruby on rails:無法將哈希字符串轉換爲
tbluser型號
class Tbluser < ActiveRecord::Base
self.primary_key = "username"
def self.login(user,pass)
if user and pass
find(:conditions => ['username LIKE ? and password LIKE ?',"\#{user.to_s}","\#{pass.to_s}"])
else
find(:all)
end
end
end
登錄控制器
class LoginController < ApplicationController
protect_from_forgery with: :null_session
def formlogin
end
def chekclogin
@dn = Tbluser.login(params[:user],params[:pass])
if @dn.blank?
redirect_to:action => "error"
else
redirect_to:action => "success"
end
end
def souc
end
def error
end
end
登錄表單視圖
<form class="login-form" accept-charset="UTF-8" action="/chekclogin" method="get">
<%= text_field_tag :user, '', class: 'form-control', :placeholder => 'Username'%>
<%= password_field_tag(:pass, "", placeholder: "Password")%>
<button>login</button>
<p class="message">Not registered? <a href="#">Create an account</a></p>
</form>
這不是一個好的登錄系統 - 例如:你不應該通過GET傳遞密碼。我建議你考慮使用像Devise這樣的認證寶石(https://github.com/plataformatec/devise)來處理用戶登錄。 – ReggieB