andersonleite
andersonleite

Reputation: 403

ActiveRecord select a string field has a certain length in Rails 3?

I've got a series of Posts and would like to select all posts where its title size is lesser than 30, how to do that?

Posts.where("len(title) < 30")?

Upvotes: 40

Views: 15794

Answers (2)

go minimal
go minimal

Reputation: 1703

This works for me with MySQL:

Post.find(:all, :conditions => "length(title) < 30")

Upvotes: 1

Raphomet
Raphomet

Reputation: 3639

This should work:

Post.where("length(title) < 30")

You're correctly using #where as shorthand for :conditions in Rails 3. You can pass in any snippet that works in your local SQL directly.

Just remember that ActiveRecord model classes are singular by convention.

Upvotes: 77

Related Questions