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