私はRABLを使用してJSONをレンダリングしています。私はこれらのモデルを持っています:
Project
Task
User
「プロジェクトの表示」アクションにより、プロジェクト内のタスクのリストを含むプロジェクトの詳細がレンダリングされますが、ユーザーが表示を許可されているユーザーのみが表示されます。
これまでのところ、すべてのタスクをプロジェクトに追加しましたが、show.rabl
正常に機能しています。
child tasks: :tasks do
extends "task/show"
end
特定の条件に答えるタスクのみをレンダリングするようにRABLに指示する方法はありますか?-私はすでにコントローラーにそのロジックを持っていますが、それをRABLに伝える方法がわかりません...
- アップデート -
「コード」セクションを追加し、プロジェクトオブジェクトを渡してから、表示されているタスクからハッシュを作成してレンダリングすることで、これを行う方法を考え出しました。これは機能しますが、非常に醜く、そもそもRABLを使用する目的に反します。おおまかに次のようになります。
code :tasks do |project|
project.tasks.visible_by(current_user).inject([]){|arr, task| ...}
end
私のユースケースはそれほどユニークではないと確信しています。それを行うためのより簡単な方法はありますか?