ruby-on-rails - Sequel 与 ActiveRecord 结合使用有什么问题吗?

标签 ruby-on-rails ruby activerecord sequel

我正在考虑使用 Sequel对于我发现在 Active Record 中很难制作的一些较复杂的 SQL。

在同一个项目中使用Sequel和ActiveRecord有什么需要注意的吗? (除了明显的,比如续集中没有 AR 验证等......)

最佳答案

免责声明:我是 Sequel 的维护者。

在使用 Rails 时,Sequel 很容易与 ActiveRecord 一起使用或代替 ActiveRecord。您必须手动设置数据库连接,但除此之外,用法类似。您的 Sequel 模型文件位于 app/models 中,其工作方式类似于 ActiveRecord 模型。

设置数据库连接并不乏味,通常是在 environment.rb 中一行要求 sequel,在每个环境文件(development.rb、test.rb、production.rb)中一行做如下操作:

DB = Sequel.connect(...)

所以只有当您认为 4 行设置代码乏味时,它才乏味。

除非您针对多个数据库,否则使用原始 SQL 通常不是问题。避免它的主要原因是增加了冗长。 Sequel 支持使用原始 SQL 至少与 ActiveRecord 一样容易,但在 Sequel 中需要使用原始 SQL 的情况通常相当少见。

顺便说一句,Sequel 附带了多个验证插件。 validation_class_methods 插件类似于 ActiveRecord 验证,使用类方法。 validation_helpers 插件有一个使用实例级方法的更简单的实现,但两者可以做大致相同的事情。

最后,我要说的是,如果您已经有了可以执行您想要的操作的有效 ActiveRecord 代码,那么除非您计划添加功能,否则将代码移植到 Sequel 可能不值得。

关于ruby-on-rails - Sequel 与 ActiveRecord 结合使用有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236317/

相关文章:

java - 在 JRuby 中调用自定义 Java 类

python - Ruby 是否支持条件正则表达式

ruby-savon 与 mono-wcf 通信

php - Yii2 - 获取所有唯一模型属性值的最佳方法是什么?

ruby-on-rails - 使用 Rspec 测试和模拟服务

ruby-on-rails - 在 SCSS 部分中使用 Rails 3.1 Assets 路径

ruby-on-rails - 如何设置到目录的 catch-remaining 默认路由?

ruby - block 局部变量的存在只是为了增强可读性吗?

ruby-on-rails - 使属性仅在创建期间可批量分配

ruby-on-rails-3 - 如何在迁移中正确添加自定义 SQL DML