Вам необходимо определить класс для каждого типа в каталоге app/models
:
# app/models/page.rb
class Page < ActiveRecord::Base
end
# app/models/blog.rb
class Blog < Page
end
Если вы хотите, чтобы один контроллер получил их оба:
if blog? # implement this method yourself
@blogs = Blog.all
else
@pages = Page.all
end
Таким образом, по сути, all
-метод возвращает экземпляры класса, в котором вы его вызвали.
Однако: я бы порекомендовал вам использовать отдельный контроллер для каждого типа. Они представляют собой разные ресурсы и должны рассматриваться как таковые. Используйте такие инструменты, как InheritedResources , чтобы высушить контроллеры.