Rails 3选择include

时间:2012-06-12 08:36:28

标签: ruby-on-rails ruby-on-rails-3 activerecord

我遇到了解决问题的真正问题。我有两个不同的用户模型(志愿者和老年人),我想链接这些。我已经建立了一个关系,并且可以加载一个志愿者和一个高级/老年人。但我想过滤加载的属性。你怎么能这样做? (为了安全起见,我想这样做,但我甚至不确定这是一个问题吗?)

我知道包含select不起作用,我一直尝试使用连接,但无法使其工作。

这就是我如何装载具有所有高级属性的志愿者

class VolunteersController < ApplicationController

    def index
        @volunteer = Volunteer.select(Volunteer::PROFILE_COLUMNS).find(current_volunteer)
    end

end

模型:

class Volunteer < ActiveRecord::Base
    has_and_belongs_to_many :seniors
    ...
end

class Seniors < ActiveRecord::Base
    has_and_belongs_to_many :volunteers
    ...
end

1 个答案:

答案 0 :(得分:0)

你可以尝试:

@volunteer = Volunteer.find(current_volunteer, 
:select => Volunteer::PROFILE_COLUMNS, 
:joins => "left outer join seniors on seniors.id = volunteers.senior_id")

虽未经过测试。在http://www.fortytwo.gr/blog/18/9-Essential-Rails-Tips

更好的解释