Я обновить с рельсов 2 до rails3 и в моем коде контроллера, как этотрасположения в моем контроллере не называется rails3
class UserController < ApplicationController
layout :choose_layout
def choose_layout
return 'login' if action_name == 'login' or action_name == 'set_new_password'
return 'forgotpw' if action_name == 'forgot_password'
return 'dashboard' if action_name == 'dashboard'
'application'
end
def all
@users = User.active.all
end
end
выше метод компоновки работает отлично на rails2 но не называют в rails3 , Я не знаю, почему это произошло, и если я буду писать код, как это в действии
class UserController < ApplicationController
def all
@users = User.active.all
render :layout => choose_layout
end
def choose_layout
layout_name ="application"
layout_name = 'login' if action_name == 'login' or action_name == 'set_new_password'
layout_name = 'forgotpw' if action_name == 'forgot_password'
layout_name = 'dashboard' if action_name == 'dashboard'
layout_name
end
end
Затем макет делают отлично.
может кто-нибудь помочь мне решить эту проблему
ли вы установить макет в 'ApplicationController'? если да, попробуйте установить его, чтобы проверить, вызвало ли это проблему? – Nimir
привет спасибо за помощь, что он не работает, я пишу его на контроллере app –
Я имел в виду проверить ваш код 'application_controller', имеет ли он по умолчанию макет там' layout: somthing'? check http://apidock.com/rails/ActionController/Layout/ClassMethods/layout последние комментарии упоминает конфликт в этом случае! – Nimir