Ruby on rails 3 如何从Rails 3中的模型访问Cookie

Ruby on rails 3 如何从Rails 3中的模型访问Cookie,ruby-on-rails-3,cookies,model,Ruby On Rails 3,Cookies,Model,我正在使用考拉宝石与Facebook API进行交互。为了连接到API,我需要将cookies传递给考拉。我想在模型中这样做,因为我想在模型中创建前回调期间从Facebook数据向用户添加额外数据。例如,如果用户有活动的FB会话,则在创建用户行时存储其Facebook UID。如何从模型中获取Cookie?模型不应意识到它们正在web环境中运行 您可能想考虑的是将FB UID与其他属性相同的方式存储在模型中,在创建过程中将其设置在模型上。据我所知,模型是MVC模式中数据存储的包装器。如果数据存储

我正在使用考拉宝石与Facebook API进行交互。为了连接到API,我需要将cookies传递给考拉。我想在模型中这样做,因为我想在模型中创建前回调期间从Facebook数据向用户添加额外数据。例如,如果用户有活动的FB会话,则在创建用户行时存储其Facebook UID。如何从模型中获取Cookie?

模型不应意识到它们正在web环境中运行


您可能想考虑的是将FB UID与其他属性相同的方式存储在模型中,在创建过程中将其设置在模型上。据我所知,模型是MVC模式中数据存储的包装器。如果数据存储在cookie中,为什么模型不应该知道web环境?如果目标是将数据存储与数据查看和数据处理分离,那么就没有问题。所以,我很想听听你的理由。@Rokujolady OP问了一个问题(我如何从模型中获得cookie),他们需要的是cookie中的值。价值观与网络无关,Cookie与网络无关。“目标”是分离不相关的层,数据没有理由了解web,它只需要web中的值。通过将它们分开,您可以从任何地方获取数据,比如测试、服务等。从您的回答和其他研究中,我开始看到,这更多地是以rails为中心的MVC解释,而不是模式中固有的解释。简言之,我认为真正的答案是“这样做,因为rails框架就是这样设置的,如果你不遵守规则,你的生活会很痛苦!”一般来说,这并不反对MVC,因为操作数据的东西,控制器,不应该关心数据存储在哪里……在客户机驱动器上的cookie上或服务器数据库中。@rokujolady这与Rails无关。这与保持两个完全不同的功能块分离有关。模型需要知道Facebook id,句号。除了id之外,没有其他连接。将模型与Cookie(一个纯web工件)绑定以获取此id是荒谬的。响应facebook_id方法或具有合理密钥的哈希的东西,当然-这两者都不需要从非web层工件访问web层工件。我同意。在这种情况下,将会话cookie字段用作控制器在db中查找项目的参数是有意义的。我只是说,在某些情况下,模型可以合理地包装cookie,但其设计并不总是糟糕的。