まず、私の関連付け:
Form has_many :agreements
Agreement belongs_to :student
can :read, Form
契約の1つが現在のユーザーに属している場合、現在のユーザーがアビリティを定義しようとしています。
私は能力を次のように定義しようとしました:
Ability.rb:
can :read, Form do |f|
f.agreements.select { |a| a.student_id == user.id }.nil? == false
end
私も試しました:
can :read, Form, agreements: { student_id: user.id }
残念ながら、最初の解決策では、フォーム同意書のいずれにも添付されていない場合でも、すべての学生がすべてのフォームを表示できます。2 番目の解決策では、学生がフォームの同意書の 1 つに添付されている場合でも、フォームを表示することはできません。
私は何を間違っていますか?