我有一个有许多comments
的post
模型。现在一个链接到一个评论实际上是一个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