问题标签 [sequel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
537 浏览

ruby - 如何使用 Sequel::Model 跨两个表分页?

为了改变,我使用的是基于 Ramaze 的应用程序,因此是基于 Sequel 的应用程序,而不是 Rails 应用程序。

我有一个模型,它与via a join table和via a join tableTag多对多关联。:posts:taggings:external_posts:external_post_taggings

我想将这两个关联收集在一起,并按created_at每个表中调用的日期字段对它们进行排序。

如果没有分页,我会这样做:

但是,我需要使用分页。如果只是 .posts 我会这样做:

但我不知道如何跨两个表分页,如果可能的话。

0 投票
1 回答
397 浏览

ruby - 如何使用 Sequel 和 Ruby 限制从查询返回的字符数?

我的模型是Article,我只想显示文章正文的片段,以预览这篇特定文章。

我将如何使用 Sequel 做到这一点?

我认为它可能正在使用limit,但这只会限制从数据库返回的记录数。

理想情况下,我想做类似的事情:Article.first.limit(40)其中 40 是前 40 个字符。

我知道limit这行不通,但我只是用它作为一个例子来说明我在寻找什么。


编辑1:

我正在使用 Sinatra。我想限制返回的值,但从视图而不是路由文件。

我在路由文件中做了这样的事情:

这给了我所有 type 部分的列表a

然后,要写一篇文章,我会这样做:

基于这种情况,我想做的是限制返回的“名称”属性的大小。

但是,当我这样做时,我得到了这个错误:

我该如何处理,以便我可以限制name属性的大小?

0 投票
2 回答
463 浏览

sql - 常量的续集格式,选择中的函数调用?

我试图弄清楚如何创建一个包含函数调用和常量作为其一部分并使用别名的Sequel数据集。select我坚持正确的语法。

我试图避免插入原始 SQL,但如果必须,我会这样做,只要我可以链接结果数据集并引用原始 SQL 中的列别名。

我的实际查询更复杂(我实际上并没有调用sin,它只是一个函数调用的示例),但为了说明目的,这里是我试图在 SQL 中执行的简化版本:

什么是等价的,惯用的,续集?到目前为止,我有:

0 投票
1 回答
494 浏览

ruby - 如何在 Sequel 中为表格视图创建方法?

我在 Sequel 中制作了一个表格视图,并将其放入一个文件中db_views.rb

为了遵循“胖模型瘦控制器”的做法,我想为:bn_view.

0 投票
1 回答
184 浏览

ruby - 如何在 Sequel 关联中动态选择表?

我正在尝试在两个模型之间创建一对一的关联,称为AB。模型B可以存在于 table Foo(如果Foo存在)或 table 中Bar,所有其他情况。

我尝试使用:datasetone_to_one 关联方法的标志来使其工作,但似乎无法弄清楚如何在不引入循环依赖的情况下使其工作。

有没有办法通过 Sequel 关联来实现这一点?还是手写 SQL 的最佳做法?

0 投票
4 回答
2306 浏览

sql - 确保 SQL 查询是只读的

确保SQL 查询不会更改数据库数据的最佳方法是什么?

在我的场景中,你没有访问数据库层的权限,只能在应用层做这个逻辑。

你会推荐使用 gem,一个 ruby​​ 自定义脚本吗?

0 投票
5 回答
5249 浏览

ruby - 是否有任何使用游标或智能提取的 Ruby ORM?

我正在寻找一个 Ruby ORM 来替换 ActiveRecord。我一直在看 Sequel 和 DataMapper。它们看起来相当不错,但它们似乎都没有做基本的事情:当你不需要时,不要将所有内容加载到内存中。

我的意思是我已经在 ActiveRecord 和 Sequel 上尝试了以下(或等效),并且有很多行:

他们俩都在记忆中发疯。他们似乎将所有内容加载到内存中,而不是在需要时获取内容。我find_in_batches在 ActiveRecord 中使用了,但这不是一个可接受的解决方案:

  1. ActiveRecord 不是一个可接受的解决方案,因为我们遇到了太多问题。
  2. 为什么我的代码应该知道分页机制?我很高兴在某处配置页面大小,仅此而已。您find_in_batches需要执行以下操作:

    post.find_in_batches { |批次| 批处理每个 { |p| 放 p } }

但这应该是透明的。

那么是否有可靠的 Ruby ORM 可以正确提取?


更新:

正如 Sergio 所提到的,在 Rails 3 中,您可以使用find_each我想要的。然而,由于 ActiveRecord 不是一个选项,除非有人真的能说服我使用它,问题是:

  1. 哪些 ORM 支持 find_each 的等价物?
  2. 怎么做?
  3. 为什么我们需要一个find_each,而find应该这样做,不应该吗?
0 投票
2 回答
2000 浏览

ruby - 在使用 nginx 处理 Phusion Passenger 时,连接 Sequel DB 的正确位置

我有使用 Sinatra+Sequel 在 ruby​​ 上编写的测试应用程序。

配置.ru:

示例代码:

一切都很好,直到我开始在我的测试环境中使用 Phusion Passenger。现在我在 nginx error.log 中有异常:

Sequel::DatabaseError - RuntimeError:连接不能在分叉的进程中重用。

将数据库连接例程放置到机架文件 config.ru 是否正确,或者最好以不同的方式进行?如果第一个变体比如何从应用程序代码正确调用连接?

PS:我知道我可以passenger_spawn_method conservative在应用程序代码中继续打开连接,但这不是我正在寻找的方式,因为它的速度和资源使用问题。

0 投票
1 回答
818 浏览

mysql - Heroku db:push -> 缺少续集宝石

我正在尝试将本地 MySQL 数据库推送到 Heroku 的 ClearDB MySQL 数据库。我经历了很多丢失宝石之类的错误,并且被困在一个上面。我在跑:

它提示我输入应用程序名称以确认,然后我收到许多错误,如下所示:

这很奇怪,因为我安装了 Sequel gem,并且版本正确(3.20.0)。我已经尝试完全重新安装我所有的 gem,但仍然没有运气。

0 投票
1 回答
71 浏览

ruby-on-rails - 如何从事务表中获取最新条目?

这与通常的基于 AREL 或 Sequel gem 的模型有点“开箱即用”,所以我正在寻找一些专家指导。

我在我的应用程序之外有一个遗留(事务)表,每次部署某些东西时都会更新。Deployments看起来像这样:

上面的标记线代表DEPLOY_ID每个唯一APP_DEPLOY_NAME + DEPLOY_TYPE + DOMAIN + DEPLOY_ENV条目的最高值。从概念上讲,这些是由这四个值定义的复合键的最新部署。

在 SQL 中,我可以轻松地使用自联接创建此视图:

(可能有更好的写法,但它显示了我正在尝试做的事情)

但是,这失去了查询链接的好处......即我似乎无法得到类似的东西: latest.filter(:APP_DEPLOY_NAME.like('%adn%'))

其他皱纹:

  • 我不拥有数据库,所以我无法添加视图。
  • 如果我创建自己的表,我需要担心数据刷新(事务表是实时的并且会不断更新)。

有任何想法吗?