我有一个在rails上运行ruby的基本应用程序。我使用sqlite3进行开发,使用postgres进行生产。我最近访问了Orchestrate.io和他们的学生等级。
我想知道如何在我的应用程序中使用它。我甚至不确定这是可能的。我的应用程序非常简单(add-edit-delete)。但是,使用这些工具会很有趣。
主要是因为我找不到高效且免费的rails db文本搜索。
答案 0 :(得分:3)
您绝对可以使用Orchestrate作为Rails应用程序的后端。
一些不同的选择:
要使用Orchestrate作为唯一的后端(没有postgres / mysql),我发现最好的方法是禁用ActiveRecord:
创建新应用程序时,您可以使用-O
跳过ActiveRecord:
rails new my_app -O
对于现有应用程序:
<强> 1。从您的Gemfile(pg,mysql2,sqlite3等)中删除数据库适配器gems
<强> 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
从这里,您可以访问控制器中的$ App对象(初始化集合对象):
class FoosController < ApplicationController
def index
@foos = Foo.new($App, "foos").each
end
end
利用模型关注点可能是在模型之间共享Application对象/ API密钥的更好方法。或者您可以在方法客户端上滚动自己的类。
希望这有帮助!
我将在更多&#39; Railsy&#39;中研究如何实现这一目标。方式。
编辑:另外,textacular是一个红宝石宝石,为postgres提供全文搜索和索引