0
我跟隨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>
我可以提供幫助回答這個問題,有必要的任何其他信息。
該做的工作。我把它作爲之前的過濾器,併爲我的'posts_controller.rb'創建方法。像魅力一樣工作,非常感謝! – anater