0

プロジェクト、タスク、またはサブタスクのいずれかに属することができるポリモーフィックリソースディスカッションがあります。

ある時点で、ディスカッションコントローラーのアクションを表示するためにルートを変更したいと思います。そのためには、ディスカッションID(paramsから取得)が必要であり、親が何であるか(paramsからも取得)を知る必要があります。

したがって、アクションを表示するためにルーティングするには、次の3つのケースが必要になります。

  project_discusison_path(@project, @discussion)
  task_discussion_path(@task, @discussion)
  subtask_discussion_path(@subtask, @discussion)

この3つのケースを1つのパスヘルパーで作成するにはどうすればよいですか?(以下のように見えます)

parent_discussion_path(@parent, @discussion)

覚えておいてください、私はすべての変数を見つけて持つことができます。パスを書くだけが問題です。

4

1 に答える 1

1

たとえば、でリンクを生成している場合は、次のlink_to配列構文を使用できます。

link_to "Show Discussion", [@parent, @discussion]

polymorphic_path内部的には、これはおよびpolymorphic_urlメソッドと同じことを実現します。

polymorphic_url([@parent, @discussion])
于 2012-06-10T21:13:14.603 に答える