我遵循Railscast #393在我的应用程序中实现来宾用户。我在这种方法中遇到的唯一问题是它需要用户仍然单击一个按钮来创建用户(尽管没有注册)。我的目标是让这种情况自动发生,但不会在每次重新加载或再次访问页面时发生。我不知道该怎么做。
用户控制器.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
用户.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
应用程序.html.erb
<ul>
<li><%= button_to "Try it for free!", users_path, method: :post %></li>
</ul>
我可以提供任何必要的额外信息来帮助回答这个问题。