2012-03-03 98 views
0

我有两个途径:轨to_param特定路线

/votes/:id/upvote 
/votes/:id/downvote 

votes控制器将要处理不同votable模型。 我想要做的就是upvote_path(@model)成为/votes/"model_class"_"model_id"/upvote

这可以通过在一个特定的模式,像这样覆盖to_param来完成:

def to_param 
    "#{self.class.name.downcase}_#{self.id}" 
end 

但是这将意味着我不得不这样做对于所有votable型号,我不希望其他路线受到影响。有任何想法吗?谢谢!

回答

1

添加到助手代码:

def upvote_path(model) 
    "/votes/#{self.class.name.downcase}_#{self.id}/upvote" 
end 
+0

哈哈,这么明显,谢谢! :) – 2012-03-03 17:09:12

+0

它应该是: def upvote_path(model) “/votes/#{model.class.name.downcase}_#{model.id}/upvote” end – Bengala 2017-06-30 23:24:47