gpt4 book ai didi

ruby-on-rails - 将 Orchestrate.io 与基本的 Rails 应用程序结合使用

转载 作者:太空宇宙 更新时间:2023-11-03 18:15:41 24 4
gpt4 key购买 nike

我有一个使用 ruby​​ on rails 运行的基本应用程序。我使用 sqlite3 进行开发,使用 postgres 进行生产。我最近访问了 Orchestrate.io 和他们的学生层。

我想知道如何在我的应用程序中使用它。我什至不确定这是可能的。我的应用程序非常简单(添加-编辑-删除)。但尝试使用这些工具会很有趣。

主要是因为我找不到高效且免费的 rails db 文本搜索。

最佳答案

您绝对可以使用 Orchestrate 作为 Rails 应用程序的后端。

几个不同的选项:

  • Orchestrate-Ruby client同时具有方法客户端和对象客户端。虽然对象客户端仍被认为是一个正在进行的工作,但方法客户端提供了一个可靠的接口(interface)来连接到 Orchestrate API。
  • 使用 http 库(例如 rest-clientfaraday)调用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com