Rails模型是一个普通的ruby类,可用于在不同的控制器操作之间存储状态吗? 根本没有活动记录和无数据库

所以我想我终于开始了解轨道。 :-)我需要离开标准Model (database)到: ControllerView数据交换流并坚持我自己的业务逻辑非数据库类作为模型。 我有几个问题。

  1. 我认为模型是数据库表的ORM。 但这些模型是否只是可以用来存储状态的常规java类? 因为我需要使用一个不会基于活动记录的基本ruby类。 我打算用它来存储不同控制器动作之间的状态。

  2. 我知道我们不能在其他控制器操作之间共享控制器实例变量(@two = 2)。 但是,如果我在一个控制器方法中创建一个常规非数据库ruby模型类的实例,并改变对象变量的属性。 如何在另一个控制器方法中使用该对象引用?

对上述两个问题的一个很好的彻底解释对我来说太有用了,我要去参加一个派对! 🙂

先感谢您!

Rails中的模型就像数据访问对象,因此您可以拥有支持模型的数据库或支持持久性的API。 模型是保持状态的常规类,但仅限于当前请求的生命周期。 因此,一旦请求完成,您的数据将通过呈现视图或重定向到另一个页面而消失。

您可以将模型对象存储在会话中,cookie中或浏览器的本地存储中,这不需要数据库后端。 根据您的应用程序的需要,它可能会为您服务。