我在 gem (Google::APIClient.new) 中定义了一个模型,并且在我的控制器中创建了该 gem 的实例。
我想在每个用户的控制器操作之间共享实例,所以我需要以某种方式持久化它。我尝试将其存储在会话变量 (session[:client] = Google::APIClient.new) 和我自己的模型 (User.goog_client = Google::APIClient.new) 的一个字段中,但这不起作用. 是否有一种正确的方法可以为每个用户从另一个 gem 中保存一个模型?
提前致谢!
Soln:找到一个更简单的soln,将属性存储在会话中,然后将它们重新加载到模型中:
session[:access_token] = client.authorization.access_token
session[:refresh_token] = client.authorization.refresh_token
session[:expires_in] = client.authorization.expires_in
session[:issued_at] = client.authorization.issued_at
client.authorization.access_token = session[:access_token]
client.authorization.refresh_token = session[:refresh_token]
client.authorization.expires_in = session[:expires_in]
client.authorization.issued_at = session[:issued_at]