method

find_by_sql

Importance_2
v1.1.6 - Show latest stable - 2 notes - Class: ActiveRecord::Base
find_by_sql(sql) public

Works like find(:all), but requires a complete SQL string. Examples:

  Post.find_by_sql "SELECT p.*, c.author FROM posts p, comments c WHERE p.id = c.post_id"
  Post.find_by_sql ["SELECT * FROM posts WHERE author = ? AND created > ?", author_id, start_date]
Show source
Register or log in to add new notes.
July 1, 2015
1 thank

Space before the opening [

In this example

Post.find_by_sql ["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date]

The array is a parameter, so a space is required before the opening [, which is equivalent to write like this

Post.find_by_sql(["SELECT title FROM posts WHERE author = ? AND created > ?", author_id, start_date])
March 19, 2015
0 thanks

Wrong number of arguments (2 for 1)

If you get this error, wrap brackets with parentheses: Post.find_by_sql([“some query”])