Я полагаю, что вы можете просто назначить переменную @to_render
в вашем действии контроллера, что-то вроде:
class FooController < ApplicationController
def bar_action
...
@to_render = get_to_render
...
end
private
def get_to_render
if current_task_type == 'econsent'
if @patient_organization.organization.identity_verification
if @patient_organization.manual_verified
return :relogin_required_screen if (!@reauthenticated && !kiosk_token?)
else
return :manual_verification_required_screen
end
else
if @patient.self_verified
return :relogin_required_screen if (!@reauthenticated && !kiosk_token)
else
return @patient.self_verification_req_sent ? :verify_email_after_sent_screen : :verify_email_screen
end
end
end
return "#{current_task_type}_tasks".to_sym
end
def kiosk_token?
session['kiosk_token']
end
end
Затем в вашем html.slim
файле выполните:
= render @to_render
Я не могу вспомнить, но вам может понадобиться:
= render "#{@to_render}"
, поскольку @to_render
будет символом. Выполнение интерполяции строки автоматически преобразует символ в строку.