所以我有這個應用程序,我正在用戶在註冊後輸入他們的信息後有配置文件。Rails如何以設計方式登錄訪客用戶
目前我正在嘗試添加一項功能,允許新的未註冊用戶訪問個人資料,以便在他們需要註冊之前查看應用程序的樣子(我正在計劃對其進行「嘗試免費「按鈕home_controller#index
動作對於身份驗證,我使用的設計寶石
目前,我已經看過Railscast(393)在這個,但我不明白(幾個小時後嘗試)如何實現訪客用戶並使用Devise將其登錄
我也讀過關於SO的4種不同的解決方案,並決定堅持這一項(how to create a guest user in Rails 3 + Devise):
class ApplicationController < ActionController::Base
def current_user
super || guest_user
end
private
def guest_user
User.find(session[:guest_user_id].nil? ? session[:guest_user_id] = create_guest_user.id : session[:guest_user_id])
end
def create_guest_user
u = User.create(:name => "guest", :email => "guest_#{Time.now.to_i}#{rand(99)}@example.com")
u.save(:validate => false)
u
end
...
end
我有這個在我的application_controller.rb
不明白,我怎麼會用這些功能在home_controller#索引創建來賓用戶並登錄到配置文件時的「實戰」按鍵。
我已經試過手動創建user
,節約其不進行驗證,然後使用鏈路設計的sign_in
方法,像這樣:<a href="<%= sign_in(:user, some_guest_user) %>">Try it!</a>
也試過 <a href="<%= profile_path %>">Try it!</a>
我想這一點,但輪廓拋出一些驗證消息說我需要登錄才能查看。我也嘗試刪除before_filter authenticate!
在profiles_controller
,但我似乎無法得到這個工作。
有人會知道如何創建一個用戶點擊按鈕,並自動登錄到訪客配置文件?非常感謝任何幫助,我完全迷失在這裏。
嗨,你是否能夠實現這種功能?我也試圖做同樣的事情。請儘可能分享您的實施。 – 2017-07-08 19:12:23
@VieenaySiingh我在下面實現了一個選定答案的變體,並添加了一個查詢參數'?is_guest = true'來爲特定功能添加特定的訪客功能 – karysto 2017-07-24 21:43:41