【问题标题】:custom action for a nested resource without adding to routes嵌套资源的自定义操作而不添加到路由
【发布时间】:2010-11-15 01:46:20
【问题描述】:

这可能真的很简单,但我有一个嵌套资源可以说:

地图。资源 :book, :has_many => :pages

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

【问题讨论】:

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


    【解决方案1】:

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

    接下来,我不确定您的turn 操作应该在书本还是页面上进行?在它完成它所做的事情之后应该发生什么?最后,路由使动作成为动作——没有它,它只是一个函数。

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

    如果您尝试在 Facebook 中创建类似于“赞”的链接,这意味着您想要更新表中的记录而不将用户发送到其他页面,您需要使用 link_to_remote*和一些javascript。在这种情况下,我只建议您参考有关该主题的 Railscasts。

    *我认为从 Rails 3 开始,link_to_remote 变成了 link_to:remote => true

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-07
      • 1970-01-01
      • 1970-01-01
      • 2014-07-25
      相关资源
      最近更新 更多