How can I sort a list of ActiveRecords by an attribute length?
Sameera207 has the right idea,but giving you the answer as ruby code.
Hint.where("sentence LIKE ?","%你%").order("LENGTH(sentence) ASC")
This will solve your problem
Perhaps you want a method like this;
def shortest_example(word) Hint.where("sentence LIKE ?", "%#{word}%").order("LENGTH(sentence) ASC").firstend
I think the easy way is to do your sorting from the DB end, as an example in MySQL:
order by LENGTH(sentence) desc
even you could write a scope for this.
Because as I can see, if you are trying to sort it after the DB select, it will be another loop which is unnecessary.
this sort:
hints = hints.sort { |x,y| x.sentence.length <=> y.sentence.length }
will do the job