2

私のモデルはArticleで、記事の本文のスニペットだけを表示して、この特定の記事のプレビューを表示したいと考えています。

Sequelでそれを行うにはどうすればよいですか?

を使用している可能性があると思いましたがlimit、それはデータベースから返されるレコードの数を制限するだけです。

理想的には、次のようなことをしたいと思います: Article.first.limit(40)40 は最初の 40 文字です。

うまくいかないことはわかってlimitいますが、探しているものを説明するための例として使用しています。


編集1:

シナトラを使用しています。ルーティング ファイルではなく、ビューから返される値を制限したかったのです。

ルーティング ファイルで次のようにします。

@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

このシナリオに基づいて、返される「name」属性のサイズを制限したいと考えています。

しかし、それを行うと、次のエラーが発生します。

undefined method '[]' for nil:NilClass

name属性のサイズを制限できるようにするにはどうすればよいですか?

4

1 に答える 1

4

このようなことはできませんか?:

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

本当にSQLを介して行う必要がある場合は、次のようにすることができます:

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

(DBによって.substringは代わりに使用する必要がある場合があります)substr

于 2011-11-11T19:46:59.137 に答える