2

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

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

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

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

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


编辑1:

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

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

@section = HelpSections.filter(:type => 'a').order(:sort, :name)

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

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

@section.each do |article|
     article.question.each do |title|
         title.name[0..9]
     end
end

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

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

undefined method '[]' for nil:NilClass

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

4

1 回答 1

4

你不能只做这样的事情吗?:

Article.first[:body][0..39]

如果你真的需要通过 SQL 来做,你可以这样做:

Article.select {|a| a.substr(:body, 1, 40) }

(根据您的数据库,您可能必须使用.substring代替)substr

于 2011-11-11T19:46:59.137 回答