Rails Has_many通过控制器

时间:2012-07-09 12:03:06

标签: ruby-on-rails ruby ruby-on-rails-3 nested-attributes

目前我有三个模特

A Song has many setlists through Allocations
Allocations belong to Songs and belong to setlists
A setlist has many Songs through Allocations.

创建列表后,数据显示在一个表格中,其中包含以下链接:

<td><%= link_to setlist.date, '#' %></td>

我基本上希望拥有它,以便当您单击此链接时,它会将用户引导到一个页面,您可以从该页面中选择数据库中的现有歌曲并将其添加到性能列表中。我不完全确定从哪里开始,因为我没有太多使用经验的经验,所以任何指针在正确的方向将是有帮助的。我应该用'#'代替什么?它是一个new_allocation_path吗?或者有没有使用嵌套表单的方法,以便我可以在创建它们时将歌曲添加到setlists?

1 个答案:

答案 0 :(得分:1)

这里没有单一的“最佳”答案......

这种关系将与你如何将这些歌曲附加到设置列表中发挥作用。尽量避免过多考虑“通过”...并专注于设置列表和歌曲对象。

...但是很可能你想要在setlist的“show”页面上(有一个小的形式可以添加歌曲到它 - 有点像我现在用来添加的形式这个问题的答案。)

link_to setlist.date, setlist

...或

setlist的“edit”页面......作为某种嵌套形式

link_to setlist.date, [:edit, setlist]

NB。这些的长形就像

link_to setlist.date, edit_setlist_path(setlist)