【发布时间】:2010-11-15 01:46:20
【问题描述】:
这可能真的很简单,但我有一个嵌套资源可以说:
地图。资源 :book, :has_many => :pages
我编写了一个名为“turn”的动作,它将 page.count 增加 1。如何使用 link_to 调用此动作?提前非常感谢。
【问题讨论】:
标签: ruby-on-rails resources nested action link-to
这可能真的很简单,但我有一个嵌套资源可以说:
地图。资源 :book, :has_many => :pages
我编写了一个名为“turn”的动作,它将 page.count 增加 1。如何使用 link_to 调用此动作?提前非常感谢。
【问题讨论】:
标签: ruby-on-rails resources nested action link-to
很难说出你的page.count 来自哪里。在Railish 中,你会找到pages.count(注意's')。此外,count(以及size)是数组和哈希等的只读属性。由 ruby 提供,它返回元素的数量。你没有设置count。
接下来,我不确定您的turn 操作应该在书本还是页面上进行?在它完成它所做的事情之后应该发生什么?最后,路由使动作成为动作——没有它,它只是一个函数。
暂时,我们假设您正在尝试存储图书中的页面被访问的次数。在您的 Page 模型中拥有一个名为 reads 或 times_viewed 等的实例变量会是一个更好的主意。假设您的 Book 模型使用的是 RESTful 路由,在 Book 的 show 操作中,您创建正在查看的 Page 模型的实例变量并在呈现视图之前增加其 reads 属性。
如果您尝试在 Facebook 中创建类似于“赞”的链接,这意味着您想要更新表中的记录而不将用户发送到其他页面,您需要使用 link_to_remote*和一些javascript。在这种情况下,我只建议您参考有关该主题的 Railscasts。
*我认为从 Rails 3 开始,link_to_remote 变成了 link_to 和 :remote => true。
【讨论】: