2012-03-03 2 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

ха-ха, так что очевидно, спасибо! :) –

+0

Должно быть: def upvote_path (model) "/votes/#{model.class.name.downcase}_#{model.id}/upvote" end – Bengala

Смежные вопросы