我将评论作为多态模型。
附在Post,Review等上。
我在CommentsController中也有一个名为test
的行动。
我设置了路由,因此test_post_comment_path
可以工作(在CommentsController中调用test
操作。)
问题是,在我的部分视图中,我希望该路由能够根据当前操作进行更改,即。在帖子上test_post_comment_path
,在评论时test_review_comment_path
。
答案 0 :(得分:5)
执行此操作的正确方法是使用polymorphic_url ...
答案 1 :(得分:1)
只使用两条不同的路径?
我的意思是:你不想在路线中加入太多逻辑。
如果路线尝试做的不仅仅是路线,那么第一次出现问题时你会遇到严重问题。
在局部视图中,创建特定链接或其他html注释内容的逻辑应该是帮助。
答案 2 :(得分:0)
这样的事情: (在您的部分视图中)
@commentable.each |commentable|
test_#{commentable.class.to_s.downcase}_comment_path
end
如果是'post'那么它将生成'test_post_comment_path',如果是审查,它将生成test_review_comment_path
答案 3 :(得分:-2)
我决定在视图中使用if语句,基于当前操作是否存在,例如@post或@review