我不知道这是Ruby问题还是Rails问题,但在this example中使用了Rails中的嵌套资源,怎样才能将事件对象分配给event_id?事件对象似乎代表比event_id更大的一组值。在本例中,如何将事件对象分配给事件ID?
<%= link_to 'Tickets', event_tickets_path(:event_id => @event) %>
我不知道这是Ruby问题还是Rails问题,但在this example中使用了Rails中的嵌套资源,怎样才能将事件对象分配给event_id?事件对象似乎代表比event_id更大的一组值。在本例中,如何将事件对象分配给事件ID?
<%= link_to 'Tickets', event_tickets_path(:event_id => @event) %>
它是内置到Rails的便利。在幕后它会发现你真的只是想要这个ID。请参阅link_to的文档。以下是其中一个示例:
link_to "Profile", :controller => "profiles", :action => "show", :id => @profile
# => <a href="/profiles/show/1">Profile</a>
请注意,此处正在做类似的事情,并且生成的href使用的是ID。
以下语法应工作:
event_tickets_path(@event)
其实,我怀疑这是行不通的。名称“event_id”而不是“id”意味着这是一个外键,也许在连接表上,我不认为Rails会推断应该将@event映射到一个特定的外键 - 仅对一个主键键,因此需要“:event_id => @event”语法...如果我错了,请纠正我。 – SingleShot 2009-10-08 07:12:29
在这种情况下,Rails调用@ event.to_param并返回id属性 - to_param在默认情况下执行此操作。您可以重写事件模型中的to_param方法以使其返回除id之外的其他内容。
它不是真的将事件对象分配给event_id,而是分配event.id。
Thx链接到link_to文档。 – 2009-10-08 07:26:26
您引用的行上面的两行是: link_to“Profile”,profile_path(@profile) 只要事件在您的路由文件中被声明为资源,就应该能够以Edwin的方式使用它建议如下。看起来RESTful版本通常更受欢迎,因为它不那么脆弱,所以如果工作起来很简单,我会推荐。 – Kyle 2009-10-08 15:53:02