У меня есть два ресурса: FaxRequest и InternetRequest, которые оба наследуют от Request. Я сгенерировал каждый из трех ресурсов с помощью команды rails scaffold resource
, а затем изменил модели для наследования от Request следующим образом:
#request.rb
class Request < ActiveRecord::Base
end
#fax_request.rb
class FaxRequest < Request
end
#internet_request.rb
class InternetRequest < Request
end
Я хотел бы иметь представление, в котором есть таблица, в которой отображаются все запросы (как FaxRequests, так и InternetRequests) вместе. Я реализовал это как представление индекса контроллера запросов.
#request_controller.rb
def index
@requests = Request.all
end
#views/requests/index.html.haml
=@requests.each do |request|
= request.date
= link_to('show', request)
= link_to('edit', ?)
= link_to('delete' ?)
Я вижу, что link_to('view', request)
достаточно умен, чтобы сгенерировать ссылку на соответствующий ресурс, но откуда Rails узнает, генерировать ли edit_fax_request_path(request)
или edit_internet_request_path(request)
на основе подкласса запроса ? То же самое касается нового и удаления?
Во-вторых, мне любопытно узнать, каков идеологический подход к ИППП. Один контроллер или три в этом случае? Я иду о проблеме все неправильно. Мне кажется, у Rails был бы аккуратный способ справиться с этой проблемой, но я гуглил и ничего не могу найти. Возможно, я не задаю правильный вопрос?