title | title文字数 | |
---|---|---|
1 | 1234567 | 7 |
2 | 1234 56 | 6 |
3 | 1 2345 | 5 |
4 | 1234 | 4 |
5 | 123 | 3 |
こんな感じで、スペースを含めない文字数を数え、多い順に表示するテーブルを作りたいです。
この場合のコントローラーでの.orderの書き方がわからないので教えてください。
controller
1@book = Book.order('length(title) desc')
とすると、スペースを含めてしまうために以下のようになってしまいます。
title | title文字数 | |
---|---|---|
1 | 1234567 | 7 |
2 | 1234 56 | 7 |
3 | 1 2345 | 6 |
4 | 1234 | 4 |
5 | 123 | 3 |
ここではtitleを数字で表しましたが、実際のtitleはアルファベット・記号・スペースで構成されています。
viewでは <%= @book.title.count("^ ") %> とし、スペースを除いて文字数を取れます。
この .title.count("^ ") をコントローラーではどのように書けばいいのでしょうか。
@book = Book.order('count("^ ")(title) desc')
ではもちろんダメで、書き方を知りたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/10/18 06:42
退会済みユーザー
2018/10/18 06:57
2018/10/18 07:16
2018/10/18 11:26