我可以在Rails 3中的模型中存储方法变量吗?

时间:2011-04-23 20:18:25

标签: ruby-on-rails session

我尝试执行以下操作:

 20       session[:atoken] = linked_in_data['extra']['access_token'].token
 21       session[:asecret] = linked_in_data['extra']['access_token'].secre

这是在用户模型中的方法内。

但是我得到一个错误,说明会话的未定义方法...为什么?会话变量只能在控制器中设置吗?

2 个答案:

答案 0 :(得分:1)

这是一种不好的做法,但如果你必须这样做:

http://m.onkey.org/how-to-access-session-cookies-params-request-in-model

但是,找到解决方法总是更好。看一看:

http://media.railscasts.com/videos/119_session_based_model.mov

答案 1 :(得分:0)

无法在模型中访问会话。它会以某种方式破坏应用程序的MVC结构。如果要在保存,更新等期间更改会话值,可以尝试使用sweeper。请参阅api。您也可以访问模型的属性和会话,并且可以观察对象的更改。