私は、ユーザーが登録せずに使用できるユーティリティーアプリで徐々にエンゲージメントを設定しようとしています。私はnotepad.ccとjsfiddle.netと私は彼がアプリに '書く'ときにユーザーのためのゲストユーザー(Deviseと)を作成する予定です。漸進的なエンゲージメント、Deviseの永続的ゲストユーザー
私はこのガイドをDevise wiki https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-userで見つけました。これは、ブラウザセッション中にゲストユーザを作成する方法を示しています。私が望むのは、その後の訪問で同じゲストアカウントを使用し続けることです。サインアップするまで、さらに多くの機能のサブスクリプションプランを導入することができます。
これを可能にするために、ガイドの内容を変更するにはどうすればよいですか?
上記のリンクガイドのコード:
# file: app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery
# if user is logged in, return current_user, else return guest_user
def current_or_guest_user
if current_user
if session[:guest_user_id]
logging_in
guest_user.destroy
session[:guest_user_id] = nil
end
current_user
else
guest_user
end
end
# find guest_user object associated with the current session,
# creating one as needed
def guest_user
User.find(session[:guest_user_id].nil? ? session[:guest_user_id] = create_guest_user.id : session[:guest_user_id])
end
# called (once) when the user logs in, insert any code your application needs
# to hand off from guest_user to current_user.
def logging_in
end
private
def create_guest_user
u = User.create(:name => "guest", :email => "guest_#{Time.now.to_i}#{rand(99)}@email_address.com")
u.save(false)
u
end
end
とコントローラで使用する:いくつかのヤクシェービング後
@thing.user = current_or_guest_user
@thing.save
をチェックしてくださいhttp://railscasts.com/episodes/393-guest-user-record?view=comments –
私は魔法のための魔法使いを捨てており、Railscastはすごいです! –