У меня есть модель Report, которая является полиморфной. Так много itens на моем сайте может иметь много из этого.
И я хотел бы иметь общий контроллер для его публикации. Это очень простая модель, имеет только текстовое сообщение и ассоциацию.
на моих маршрутах я делаю что-то вроде
map.resources :users, :has_many => [ :reports ]
map.resources :posts, :has_many => [ :reports ]
но в моем report_controller я хотел бы получить связь с тем, откуда он исходит.
как:
before_filter :get_reportable
def get_reportable
reportable = *reportable_class*.find params[:reportable_id]
end
Это возможно?
как я могу получить reportable_class и reportable_id?
Я могу получить params[:user_id], если он поступает из пользовательского контроллера, или params[:post_id], когда он поступает из сообщений. Я мог бы сделать случай со всеми отношениями, но это совсем не кажется чистым решением...
было бы лучше иметь полиморфную ассоциацию, есть ли как?