【发布时间】:2012-10-07 08:49:13
【问题描述】:
Y.A.N(又一个新手)
使用 Rails,我有一个“学生”控制器和一个“联系人”控制器,当然还有一个学生模型和联系人模型。 contact belongs_to student 和 student has_many 联系人。我有一个学生索引页面,其中列出了每个学生,可以选择为每个学生单击“添加联系人”。当我尝试调用联系人的“新”操作以及随后的“新”视图时,我失去了它。我如何/在哪里初始化学生和/或联系人,以便联系人知道 student_id。现在,我将学生传递给 new_contact_path,但随后我必须在联系人控制器中将 student_Id 称为 params(:format) 才能使其工作。这显然不是最好的方法。 任何想法下面的代码片段:
ContactsController:
def new
@contact = Contact.new
@student = Student.find(params[:format])
end
students index:
<% @students.each do |student| %>
<tr>
<td><%= link_to 'Contacts', new_contact_path(student) %></td>
</tr>
<% end %>
【问题讨论】:
-
您可以使用嵌套资源。在这种情况下,您会自动在联系人控制器中拥有 student_id (guides.rubyonrails.org/routing.html#nested-resources)。
标签: ruby-on-rails ruby variables activerecord parameters