0

解決するのに本当の問題があります。2 つの異なるユーザー モデル (ボランティアとシニア) があり、これらをリンクしたいと考えています。私は habtm 関係を設定しており、たとえば、シニア/シニアが添付されたボランティアをロードできます。しかし、読み込まれる属性をフィルタリングしたいと思います。どうすればこれを行うことができますか?(セキュリティのためにこれを行いたいのですが、これが問題かどうかさえわかりませんか?)

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
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 に答える