Да это не лучшее решение, но что мы используем, что-то вроде этого
function ReplaceNull(s)
if IsNull(s) or s = "" then
ReplaceNull = " "
else
ReplaceNull = s
end if
end function
это может вам помочь
class MessagesController < ApplicationController
layout :get_layout
def get_layout
@project? ? 'ProjectLayout' : 'NormalLayout'
end
end
Вы можете применять макеты только на уровне контроллера:
class MessagesController < ApplicationController
layout :project
end
В документации по методам макета есть пример того, как создавать условные макеты
Кроме того, поскольку вопрос неясен, вы также можете установить макет только для одного действия с опцией рендеринга.
render :action => 'new', :layout => 'layoutname'
Определите схему в контроллере, а не модель. Ваш ProjectsController может использовать свой собственный ProjectLayout, а затем MessagesController может использовать обычный макет, если хотите.