我有customer
模型has_many events
当我转到客户展示页面时,我会链接到events
所拥有的所有customer
。我想添加“此客户的新活动”链接。现在,我正在使用<%= link_to "New Event for this Customer", new_event_path %>
,但是当我按照该链接时,我必须手动输入客户的ID号。如何自动执行此操作,以便当我单击“为此客户添加新事件”时,rails知道我正在为该特定客户添加新事件,而不是自己输入customer_id?
答案 0 :(得分:3)
您要找的是nested resources
,这里是good introduction。
对于这种特殊情况,你应该声明你的路线:
map.resources :customers do |customers|
customers.resources :events
end
上述声明允许您定义以下路线:
new_customer_event_url(@customer.id)
=> customers/:customer_id/events/new
在您的具体案例中:
<%= link_to "New Event for this Customer", new_customer_event_path(@customer) %>
答案 1 :(得分:0)
将客户ID作为参数<%= link_to "New Event for this Customer", new_event_path, {:cust_id => customer.id} %>
添加到链接中,并在表单中将其设置为事件对象的隐藏参数。您的模型将自动填充客户ID。