0

我有真正的问题得到解决。我有两种不同的用户模型(志愿者和老年人),我想将它们联系起来。我已经建立了一个 habtm 关系,并且可以加载,例如,一个附有高级/高级的志愿者。但我想过滤加载了哪些属性。你怎么能做到这一点?(我想这样做是为了安全,但我什至不确定这是一个问题吗?)

我知道 include with select 不起作用,我一直在尝试 join 但无法使其正常工作。

这就是我为志愿者加载所有高级属性的方式

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
4

1 回答 1

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有更好的解释

于 2012-06-12T08:52:44.827 回答