1

我正在学习 RoR,并且我已经完成了一个基础课程,在该课程中我制作了一个与数据库交互以存储用户和其他模型对象数据的应用程序。

现在我想创建一个简单的应用程序,用户在表单中输入关键字,应用程序从第三方 api 中提取有关该关键字的信息,然后将返回的数据显示给用户。

我不需要保留任何数据以供以后使用。我只想在提交表单时立即显示它?我可以创建一个不与数据库交互的模型类吗?

作为披露,我对持久性的理解来自 iOS 开发。如果用户需要在未来的会话中访问该数据,我需要保留数据。我还不太明白如何在没有数据库的情况下暂时将数据存储在网络上以用于当前会话。

4

1 回答 1

2

不,如果你不需要它,你不需要使用数据库。但是,请记住,Rails 与数据库和 ActiveRecord 的想法紧密相关。

如果您不想使用数据库,那么您应该编辑application.rb自动生成的文件并更改行

require 'rails/all'

只需要您需要的框架。

# require 'rails/all'
# require 'active_record/railtie'
require 'action_controller/railtie'
require 'action_mailer/railtie'
# require 'active_resource/railtie'
require 'rails/test_unit/railtie'
require 'sprockets/railtie'

如您所见,我注释掉了活动记录和活动资源。这样,Rails 将不包含 ActiveRecord,如果您跳过数据库创建,它也不会抱怨。

您可以使用会话持久化数据。但是,会话的大小是有限的,因为它们通常与 cookie 一起存储。它适用于小 ID 或原始变量,但不适用于复杂数据。

附带说明一下,如果您需要一个没有 Rails 限制的简单框架,您应该尝试一下Sinatra

于 2013-03-29T16:04:08.663 回答