ActiveRecord表别名

mat*_*sko 4 database activerecord join ruby-on-rails

有谁知道是否有可能为ActiveRecord表连接设置别名?

就像是:

User.find(:all, :alias => "Users as u", :joins => "Friends as f", :select => "u.id,f.name")
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Geo*_*tte 8

是的,但如果覆盖连接,则需要包含"ON"语句和join语句.

User.find(:all, :joins => " as u INNER JOIN Friends as f ON f.user_id = u.id", :select => "u.id,f.name")
Run Code Online (Sandbox Code Playgroud)

或者在Rails 3+中

User.joins("as u INNER JOIN Friends as f on f.user_id = u.id")
    .select("u.id, f.name")
    .all
Run Code Online (Sandbox Code Playgroud)

  • 这只是我还是黑客? (2认同)