Вы можете просто наследовать один контроллер от другого:
Один общий контроллер:
class PostsController < ApplicationController
#here all the methods common for all types, if any
def new
@post = Post.new(:email => current_user.try(:email))
end
...
end
Затем в каждом контроллере:
class AnswersController < PostsController
self.model_class = Post
# here all specific methods
def create
...
end
end
И все просмотры, которые выможете хранить в папке posts
или те, которые отличаются в своих папках