我有一个使用 ruby on rails 运行的基本应用程序。我使用 sqlite3 进行开发,使用 postgres 进行生产。我最近访问了 Orchestrate.io 和他们的学生层。
我想知道如何在我的应用程序中使用它。我什至不确定这是可能的。我的应用程序非常简单(添加-编辑-删除)。但尝试使用这些工具会很有趣。
主要是因为我找不到高效且免费的 rails db 文本搜索。
最佳答案
您绝对可以使用 Orchestrate 作为 Rails 应用程序的后端。
几个不同的选项:
- Orchestrate-Ruby client同时具有方法客户端和对象客户端。虽然对象客户端仍被认为是一个正在进行的工作,但方法客户端提供了一个可靠的接口(interface)来连接到 Orchestrate API。
- 使用 http 库(例如 rest-client 或 faraday)调用 Orchestrate API。
- 还有 Orchestrate-Rails gem .您的里程可能会有所不同(最后更新于四月)。
要使用 Orchestrate 作为唯一的后端(没有 postgres/mysql),我发现最好的方法是禁用 ActiveRecord:
创建新应用时,可以使用-O
跳过ActiveRecord:
rails new my_app -O
对于现有的应用程序:
<强>1。从 Gemfile(pg、mysql2、sqlite3 等)中删除数据库适配器 gem
<强>2。更改您的 config/application.rb
删除 require 'rails/all
行并要求您要使用的框架,例如:
require "action_controller/railtie"
require "action_mailer/railtie"
require "sprockets/railtie"
require "rails/test_unit/railtie"
<强>3。删除您的 database.yml
文件、db/schema.rb
和迁移(如果有)
<强>4。删除 test/test_helper.rb
<强>5。从您的 config/environments
文件中删除任何 ActiveRecord 配置(这是导致错误的原因)
如果您遇到问题/错误,堆栈跟踪应该会为您提供足够的信息,说明您需要更改的内容。例如,您可能在初始化程序中有一些 ActiveRecord 配置。
使用 Orchestrate-Ruby 客户端,您可以像这样定义一个模型:
class Foo < Orchestrate::Collection
...
end
我仍然不确定定义 Application 对象的最佳方法是什么,但我已经完成的一种方法是创建一个带有初始值设定项的全局对象:
# /config/initializers/orchestrate.rb
$App = Orchestrate::Application.new(ENV['ORCHESTRATE_KEY']) # using dotenv gem
$App = Orchestrate::Application.new('your_key_here') # without dotenv
然后,您可以从这里访问 Controller 中的 $App 对象(以初始化集合对象):
class FoosController < ApplicationController
def index
@foos = Foo.new($App, "foos").each
end
end
利用模型问题可能是在模型之间共享应用程序对象/API key 的更好方法。或者您可以在方法客户端之上滚动您自己的类。
希望这对您有所帮助!
我将研究如何以更“Railsy”的方式完成此任务。
编辑:此外,textacular 是一个为 postgres 提供全文搜索和索引的 ruby gem
关于ruby-on-rails - 将 Orchestrate.io 与基本的 Rails 应用程序结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26577515/