по умолчанию, когда я прошу контроллер rails сделать сообщения / индекс, он делает
def index
respond_to{|fmt| fmt.html}
end
и показывает app / views / messages / index.html.erb
есть клиент, который хочет, чтобы его экземпляр платформы по-разному отображал просмотров (и изменения нельзя сделать только с помощью css).
решение, о котором я думаю, было бы
создать каталог app / views / # {customername}, который будет иметь ту же структуру, что и app / views, но будет иметь только те представления, которые должны переопределять стандартные.
установка константы массива, содержащей список представлений, которые должны быть переопределены (если нет, они должны загружать представления по умолчанию)
CUSTOM_VIEWS["messages"]=["index","show","edit"]
где-то в пользовательском конфигурационном файле
во всех действиях контроллера делать что-то вроде
def index
respond_to do |fmt|
fmt.html do
if CUSTOM_VIEWS[params[:controller]].include?(params[:action])
#override default app/views/messages/index.html.erb with app/views/customername/messages/index.html.erb
render "#{customername}/#{params[:controller]}/#{params[:action]}"
end
end
end
end
или есть лучшее / быстрое решение / плагин для этого?