-
关于ruby在controller及view以外的地方取session的问题10
各位高手好!
我因为项目的特殊性,需要在rails 3.0.5下对源代码进行修改,具体文件为C:\Ruby187\lib\ruby\gems\1.8\gems\activerecord-3.0.5\lib\active_record\connection_adapters\abstract\connection_pool.rb。我需要在这个文件中使用cookies或者session,但是目前rails只能在controller及views中使用。
直接在这个文件中取cookies和session,会提示不认识cookies或者session的错误提示。这个问题已经困扰我们很长时间了,想了很多办法也没有解决到,请问如何解决这个问题,谢谢!
问题补充:<div class="quote_title">QuakeWang 写道</div><div class="quote_div">和J2EE架构类似,在Ruby里面你也可以用Thread local实现这种需求: <br /><a href="http://www.ruby-doc.org/core/classes/Thread.html#M000800" target="_blank">http://www.ruby-doc.org/core/classes/Thread.html#M000800</a> <br /> <br />你可以写一个before_filter,在controller里面设置: <br />Thread.current[:user_id] = session[:user_id] <br /> <br />然后在model或者其他地方使用: <br />Thread.current[:user_id]</div> <br /> <br /> <br />谢谢你的意见,我先试一下。2011年8月01日 09:50
7个答案 按时间排序 按投票排序
-
QuakeWang 写道和J2EE架构类似,在Ruby里面你也可以用Thread local实现这种需求:
http://www.ruby-doc.org/core/classes/Thread.html#M000800
你可以写一个before_filter,在controller里面设置:
Thread.current[:user_id] = session[:user_id]
然后在model或者其他地方使用:
Thread.current[:user_id]
以前写Java的时候用 Thread local 用过不少这种事,倒是不知道Ruby也可以这样。
2011年8月01日 09:50
-
和J2EE架构类似,在Ruby里面你也可以用Thread local实现这种需求:
http://www.ruby-doc.org/core/classes/Thread.html#M000800
你可以写一个before_filter,在controller里面设置:
Thread.current[:user_id] = session[:user_id]
然后在model或者其他地方使用:
Thread.current[:user_id]2011年8月01日 09:50
-
controller及views是和http打交道的,所以可以访问session,cookies,不要将http的东东污染到connection_pool.rb
2011年8月01日 09:50
相关推荐
- **Session 变量**:使用 Session 变量来保存用户的数据,以便在不同页面之间传递。 - **导航栏**:设计并实现应用的导航栏,提供清晰的页面跳转路径。 - **主页设计**:创建一个吸引人的主页,让用户了解应用的...
**Ruby on Rails (RoR)** 是一个基于Ruby语言的Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,强调代码的优雅性和高效率。Ruby是一种动态的面向对象程序设计语言,而Rails则是建立在其之上的一套...
本资源“RCS后端常用组件_Ruby_下载.zip”似乎是一个关于使用Ruby语言开发RCS后端服务的代码库,名为"rcs-common-master"。下面我们将深入探讨RCS后端开发中涉及的关键组件和技术,并重点关注Ruby在其中的角色。 1....
RoR遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发,降低开发者的工作负担,提高开发效率。该框架的核心设计理念包括“Don’t Repeat Yourself”(DRY)和“Convention Over Configuration”(CoC...
Ruby on Rails 是一个流行的开源 web 开发框架,它基于 Ruby 语言,以其“约定优于配置”的设计理念和MVC(模型-视图-控制器)架构模式而受到开发者喜爱。在这个特定的压缩包文件“login_engine”中,我们似乎有一个...
在Ruby中,"main"通常指的是程序的入口点,是程序开始执行的地方。在这个项目中,"ruby_shop-main"可能是一个包含主应用程序逻辑的目录,比如初始化数据库连接、处理HTTP请求、定义路由等。以下是一些与"ruby_shop...
模型(Model)负责处理业务逻辑和数据存储,视图(View)用于展示用户界面,而控制器(Controller)作为模型和视图之间的桥梁,处理用户输入并协调二者之间的交互。在购物车系统中,模型可能包括商品、购物车、订单...
Ruby on Rails(简称Rails)是一款基于Ruby语言的开源Web开发框架,它遵循MVC(Model-View-Controller)架构模式,极大地提高了开发效率和代码可读性。 1. **MVC架构**: MVC模式是Rails的核心设计思想,模型...
Rails是Ruby语言的一个著名Web开发框架,全称为Ruby on Rails,它遵循MVC(Model-View-Controller)架构模式,旨在提高开发效率和代码可读性。本示例"rails项目起步示例"是一个购物系统,非常适合初学者入门学习。 ...
1. **Rails开发**:Rails是Ruby on Rails的简称,是一个基于Ruby语言的开源Web应用框架,遵循MVC(Model-View-Controller)架构模式,用于快速开发Web应用程序。它提供了丰富的库和工具,简化了数据库交互、路由设置...
在Ruby on Rails框架中,构建一个简单的身份验证应用程序是开发Web应用的基础步骤之一。这个名为"rails_simple_auth"的项目,旨在提供一个基础的身份验证解决方案,帮助开发者理解如何在Rails应用中实现用户登录、...
Rails 是一个基于 Ruby 语言的开源 Web 应用框架,它遵循 Model-View-Controller (MVC) 设计模式,旨在让开发者能够更高效地构建功能丰富的 web 应用程序。在 Rails 中,登录功能是许多 web 应用程序的基础部分,...
标题中的“Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码”表明这是一个关于使用Ruby on Rails框架进行敏捷Web开发的示例项目,名为Depot。Ruby on Rails(简称Rails)是一个开源的Web应用程序框架,它...
7. ASP的现代替代品:ASP.NET是ASP的升级版,它引入了更先进的架构,如ASP.NET MVC(Model-View-Controller)和ASP.NET Core,后者支持跨平台开发,提供了更高效、更安全的Web应用开发环境。 总结,【春生太阳能】...
在Web开发领域,Ruby on Rails(简称Rails)是一种流行的开源框架,它基于MVC(Model-View-Controller)架构模式,用于快速构建高效、可维护的Web应用。本压缩包中的"web开发之rails最新调试通过购物车代码"是关于...
Model负责数据处理,View负责界面展示,Controller作为桥梁,协调Model与View的交互。 2. **主要模块** - **用户模块**:可能包括用户注册、登录、个人信息管理等功能,涉及的身份验证技术可能是session或JWT。 -...
首先,Ruby on Rails 6是这个项目的基石,它是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式。Rails 6带来了许多新特性,如Action Cable支持实时通信、Webpacker整合前端打包...
在Rails中,这可以通过Session或Cookie实现,或者使用专门的购物车模型。 - **订单系统**: 包括订单创建、确认、支付和状态跟踪。订单通常与用户、商品、支付方式关联,并有状态变化历史。 - **支付集成**: 需要与...
关于文件名称 "sikli-master",在开源项目中,通常在版本控制系统如Git中,"master"分支代表项目的主分支,包含了最新的稳定代码。因此,这个文件很可能是从Git仓库中克隆或下载的sikli项目的主分支。 现在,让我们...