これでログインフォームを作成しようとしましたが、コードを実行するとそれがスローされます:[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