rails to_param用于特定路由

时间:2012-03-03 17:01:55

标签: ruby-on-rails ruby ruby-on-rails-3.2

我有两条路线:

/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 个答案:

答案 0 :(得分:1)

添加到帮助程序代码:

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