自定义url_for为模型返回的内容



我有一个有许多commentspost模型。现在一个链接到一个评论实际上是一个url,如/post/1?page=3#26 .

我想要能够做的是调用link_to "foobar", @comment并让它生成正确的url。我已经知道如何计算评论所在的页面,因此您可以假设@comment.page_num将返回正确的整数。

我认为这需要自定义polymorphic_url

如果它不能很容易地做到也许我需要一个辅助函数link_to_comment,但我希望它能够做一切link_to可以,即传递块和什么不

我想这样可以:

link_to "foobar", @post, href: "#{url_for(@post)}?page=#{@comment.page_num}"

这是假设page_num返回3#26,这是一个假设,我不是很有信心,但我认为你可以从那里弄清楚。

又一个需要考虑的评论。page_num真的是Comment类的重要属性吗?在我看来,这是一个格式化问题,可能属于辅助函数而不是Model。只是考虑一下。

这就是我最后做的。它很简单,但正是我所需要的。我最初的目标可能太大了。经典的保持简单愚蠢的

module CommentsHelper
  def comment_page_url(comment)
    post_url(comment.post, page: comment.page_num, anchor: comment.id)
  end
end

相关内容

  • 没有找到相关文章

最新更新