【发布时间】:2012-01-18 18:59:00
【问题描述】:
我的模型是Article,我只想显示文章正文的一个sn-p,以预览这篇特定的文章。
我将如何使用 Sequel 做到这一点?
我认为它可能使用了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 属性的大小?
【问题讨论】:
-
问题是 title.name 返回 nil(无)。你确定你不是这个意思吗:
@section.each do |article|article.name[0..9] -
对不起,我添加了
article.question.each do |title|...如果它正在解析文章中的字符,它不应该返回nil。如果我这样做article.name它会返回完整的值(很长)。当我执行article.name[0..9]时,它会抱怨,这让我相信它可能正在寻找名称中的记录,而不是解析字符......如果这有意义的话。 -
试试
article.name.to_s[0..9] -
完美……这正是我所需要的。这样可行。谢谢!!!
-
您可以根据需要更新您的答案,以更准确地反映更新后的问题。