嵌套资源的自定义操作,无需添加到路由

时间:2010-11-15 01:46:21

标签: ruby-on-rails resources nested action link-to

这可能非常简单,但我有一个嵌套资源可以说:

图。资源:book,:has_many => :页

我写了一个名为“turn”的动作,它将page.count增加1.如何使用link_to调用此动作?非常感谢。

1 个答案:

答案 0 :(得分:0)

很难说出你page.count的位置。在Railish中,你会发现pages.count(注意's')。此外,count(以及size)是数组和哈希等的只读属性。由ruby提供,返回元素的数量。您没有设置count

接下来,我不确定你的turn行动应该在书本或页面上生活的位置?它应该发生什么呢?最后,路线是使行动成为行动的原因 - 没有它,它只是一个功能。

暂时,我们假设您正在尝试存储图书中的页面被访问过的次数。在您的Page模型中有一个名为readstimes_viewed等实例变量会更好。假设您的Book模型使用了Restful路由,在Book的show操作中,您将创建正在查看的Page模型的实例变量,并在呈现视图之前递增其reads属性。

如果您尝试在Facebook上创建“赞”的工作方式,这意味着您希望更新表中的记录而不将用户发送到其他页面,则需要使用{{1} } *和一些JavaScript。在这种情况下,我只是引用你关于该主题的Railscast。

*我认为从Rails 3开始,link_to_remote只与link_to_remote成为link_to