基本的に私がやっているのは、パスワードではなくニックネームだけを要求するゲストログインを求めることです。私はこれが決してデータベースに保存されないと仮定していますか?Rails 5で永続的でないユーザを作成するには?
私はこれを達成するためにどのようなアプローチをとるべきかわかりません。
基本的に私がやっているのは、パスワードではなくニックネームだけを要求するゲストログインを求めることです。私はこれが決してデータベースに保存されないと仮定していますか?Rails 5で永続的でないユーザを作成するには?
私はこれを達成するためにどのようなアプローチをとるべきかわかりません。
明示的にsave
を呼び出すと、何かがデータベースに保存される唯一の理由があります。
あなたはこのようなものでゲストユーザをエミュレートすることができます。
class User < ActiveRecord::Base
attr_accessor :guest
validate :is_not_guest
def self.guest(*args)
new(*args).tap { |u| u.guest = true }
end
def guest?
[email protected]
end
protected
def is_not_guest
return unless (guest?)
self.errors.add(:base, 'Cannot save guest user'
false
end
end
これは、ゲストを保存排除すべきである、とあなたはこのようにそれを使用することができます:
@user = User.guest(username: session[:username])
私は自分の質問をうまく表現できないと思う。ごめんなさい。私が意味することは、「通常の」ユーザー認証が存在しないことでした。 –
@JadenWangパスワードを必要とせずにユーザーモデルを定義するか、セッションデータに存在するものを包み込むためにこのGuestアプローチを採用してください。 – tadman
私の目的のために 'cookies.signed'で十分です。 –
あなたは**クッキーを使用することができます* *:http://api.rubyonrails.org/classes/ActionDispatch/Cookies.html – dp7
@dkp元々、セッションが機能するかどうか疑問に思っていました。私はこれで何ができるのかを見ていきます。 –
@dkp Railsがすべての有効なセッションCookieを保存しているので、一意性を検証できますか? –