Я пытаюсь лучше понять, как использовать помощники рельса вместе с представлениями haml.
У меня есть представление, которое изначально содержало эту логику
= fund_levels_last(i, @fund_level_count) ? ( link_to "add new level", ad, {class: 'button orange sm'} ) : ( link_to "remove", accounts_ad_fund_level_path(ad, fl.object.id), {:class => 'button orange sm', :method => :delete, :remote => true, :confirm => t('q.are_you_sure')} )
Желая максимально очистить представление от кода, я пытался перенести эту логику в помощник.
def fund_levels_last(i, flcount)
if i == flcount
true
else
false
end
end
def fund_levels_btn(i, flcount)
if self.fund_levels_last(i, flcount)
link_to "add new level", ad, {class: 'button orange sm'}
else
link_to "remove", accounts_ad_fund_level_path(ad, fl.object.id), {:class => 'button orange sm', :method => :delete, :remote => true, :confirm => t('q.are_you_sure')}
end
end
Однако в помощнике у меня нет доступа к переменным и объектам в представлении (объявление, объект, фл и т. д.). Я полагаю, что мог бы передать все это вспомогательным методам, но почему-то это кажется слишком сложным, и у меня такое чувство, что я иду по ложному пути. Моя единственная строка кода в представлении кажется 15 строками кода в помощнике...
Каким будет самый простой способ перенести эту логику из представления в помощник?