Railscast #393に従って、ゲスト ユーザーをアプリケーションに実装しました。このアプローチで私が抱えている唯一の問題は、ユーザーがボタンをクリックしてユーザーを作成する必要があることです (サインアップしなくても)。私の目標は、これが自動的に行われるようにすることですが、ページが再読み込みまたは再度アクセスされるたびに発生することはありません。私はこれについてどうすればよいか途方に暮れています。
user_controller.rb
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = params[:user] ? User.new(params[:user]) : User.new_guest
if @user.save
current_user.move_to(@user) if current_user && current_user.guest?
session[:user_id] = @user.id
redirect_to root_url
else
render "new"
end
end
end
user.rb
class User < ActiveRecord::Base
attr_accessible :name, :provider, :uid, :email
has_many :posts, :dependent => :destroy
has_many :comments, :dependent => :destroy
def self.new_guest
new { |u| u.guest = true }
end
def move_to(user)
posts.update_all(user_id: user.id)
comments.update_all(user_id: user.id)
end
end
application.html.erb
<ul>
<li><%= button_to "Try it for free!", users_path, method: :post %></li>
</ul>
この質問に答えるために必要な追加情報を提供できます。