我的模型是Article
,我想只显示文章正文的片段,以预览这篇特定的文章。
我如何用续集来做到这一点?
我认为它可能正在使用limit
,但这只会限制从数据库返回的记录数。
理想情况下,我想做的事情是:Article.first.limit(40)
其中40是前40个字符。
我知道limit
无效,但我只是以它为例说明我在寻找什么。
编辑1:
我正在使用Sinatra。我想限制返回的值,但是要从视图中限制,而不是路由文件。
我在路由文件中做了类似的事情:
@section = HelpSections.filter(:type => 'a').order(:sort, :name)
其中列出了a
类型的所有部分。
然后,我要做一篇文章:
@section.each do |article|
article.question.each do |title|
title.name[0..9]
end
end
根据这种情况,我想要做的是限制返回的'name'属性的大小。
但是,当我这样做时,我收到了这个错误:
undefined method '[]' for nil:NilClass
如何处理此问题,以便限制name
属性的大小?
答案 0 :(得分:4)
你能不能做这样的事情吗?:
Article.first[:body][0..39]
如果你真的需要通过SQL来做,你可以这样做:
Article.select {|a| a.substr(:body, 1, 40) }
(您可能必须使用.substring
代替substr
,具体取决于您的数据库)