私はこのような多対多の関係を持っています: ユーザーは所属を通じて多くの組織を持ち、その逆も同様です。
私は宣言型の組織を使用しています。ユーザーが所属していて、所属の affiliationtype 属性が特定の値である場合にのみ、特定の組織を編集できるようにしたいと考えています。
したがって、所属には、user_id、organization_id、affiliationtype_id の 3 つの列があります。
できます:
o = Organization.find(:first)
o.affiliatons[0].user and get the user
今私はこれをしたい:
has_permission_on [:organizations], :to => :edit do
if_attribute (...)
end
if_attribute は、現在のユーザーが organization.affiliation[?].user であるかどうか、および organization.affiliation[?].affiliationtype_id = "3" であるかどうかを確認する必要があります。
これが構文の問題であることを願っています...これを機能させる必要があります。