0

まず、私の関連付け:

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 つに添付されている場合でも、フォームを表示することはできません。

私は何を間違っていますか?

4

1 に答える 1