2013-03-14 27 views
0

Rails的新手在这里,我有两个型号由联想联合数据

class User < ActiveRecord::Base 
    has_many :images 

    class Image < ActiveRecord::Base 
    belongs_to :user 

相关的我明白,你可以得到用户的图像,我还可以用它在我的当前用户返回信息我CURRENT_USER方法

@user.images or current_user.images 

如果我想让它像一般的sql一样返回一行中的图像数据和用户数据该怎么办。

SELECT u.* FROM users u 
JOIN images i 
ON i.user_id = u.id etc.. 

什么是最好的和最有效的方式去做这件事?

+0

为什么你需要的数据在这个结构中? – 2013-03-14 13:02:02

+0

人们在sql中使用连接的原因相同。我需要图像数据和它的相应用户在同一行:) – Skyalchemist 2013-03-14 13:10:38

回答

2

查询 -

SELECT u.* FROM users u 
JOIN images i 
ON i.user_id = u.id etc.. 

相当于 -

@user.joins(:images) 

UPDATE:

,仅保留某些领域 -

@comments = @user.joins(:images).select("images.path, images.path_thumb, users.username") 
+0

非常感谢,如果我只想选择一些东西,例如u.id,i.path,u.username,i.path_thumb等 – Skyalchemist 2013-03-14 13:08:30

+0

Check更新的答案。 – 2013-03-14 13:25:15

+0

谢谢saurabh jain – Skyalchemist 2013-03-14 13:48:28