Пусть у вас есть такая структура:
class Post < ActiveRecord::Base
belongs_to :category
belongs_to :sub_category
end
Тогда, чтобы отрендерить статью в определенной layout'e в зависимости от подкатегории можно сделать примерно так:
class PostsController < ApplicationController
def show
@post = Post.find(params[:id])
render layout: @post.sub_category.name
end
end
Ну и естественно при этом в директории views/layouts должны лежать соответствующие файлы для каждый подкатегории.