サブドメインであるイベント ページにアクセスするために、ユーザーがサインイン (current_user) する必要がある Rails 3.2 アプリがあります。認証にdeviseを使用しています。
イベント ページへの直接リンクを提供した場合、イベント ページへの 1 回限りのアクセスをユーザーに許可する方法はありますか? 次に、別のイベント ページにアクセスしようとした場合、または離れて同じイベント ページに戻ってきた場合に、サインイン (またはサインアップ) するように求められるようにしたいと考えています。
railscastsでゲスト アカウントのエピソードを見たことがありますが、ユーザーはこの方法でサインアップしなくてもゲストとしてログインし続けることができるようです。
これが私のイベントコントローラーコードです:
def show
@event = Event.find_by_name(request.subdomain)
if params[:id].present?
@event = Event.find(params[:id])
end
# if @event.present? and @event.videos.present?
@video = Video.find_by_id(params[:video]) || @event.videos.first
# else
# @video = @event.videos.first
# end
# @json = Event.all.to_gmaps4rails
if @user = current_user
else
flash[:alert] = "Please sign in first"
redirect_to sign_up_url(:subdomain => false)
end
end
ヘルプ/アドバイスをありがとう...
編集:もう少しコンテキストを提供するために:
毎週、この 1 つのイベント ページに多くのユーザーを誘導しようとしていますが、ソーシャル メディアやメールなどで 1 つのリンクを送信するだけの場合、個別のハッシュを URL にハードコードすることが可能/実際的かどうかはわかりません。 .
ユーザーはこのリンクをクリックして問題のページに直接移動するため、別のゲスト モデルを作成するためのアクションはトリガーされないため、既存のユーザー モデルにいくつかの列を追加して、セッション ベースで回答する必要があると思います。ただし、ユーザーごとに 1 回だけ使用されるようにします。おそらくIPアドレスが機能すると思いますか?