У меня действительно нет проблем, но я не понимаю решения.
В представлении проекта (показать) я проверяю, подключен ли просмотрщик.Если нет, я отображаю баннер в определенной позиции в зависимости от количества предложений.
Представление предложений (отображается в виде проекта):
- @offers.each_with_index do |offer, index|
- if !user_signed_in? && (@project.published? || @project.pending_attribution?)
- if cta_banner_position(@offers, index)
= render 'projects/cta_banner_guest_presta.html.haml'
cta_banner_position helper:
def cta_banner_position(offer, index)
index == 2 || (offer.size == 2 && index == 1) || (offer.size == 1 && index == 0)
end
Визуализированный баннер:
.row
.col-md-12
.project-cta.p-5.mb-2.text-center
%h5
%strong
blabla
%p.text-muted blabla
%p.m-0
= link_to "Send a quote", "", class: "btn btn-primary px-3", data: { toggle: 'modal', target: '#modal-sign' }, onclick: "ga('send', 'event', 'button', 'Clic', 'Projects signup inoffers');", tabindex: -1
Я использую each_with_index для получения позиции и установки баннера, это работаетно, если я подключен, я вижу баннер (несмотря на условие! user_signed_in) ТОЛЬКО если нет предложения.
Я не понимаю, почему у меня отображается баннер, когда я подключен.Чтобы решить эту проблему, я также должен добавить « - if! User_signed_in? » вверху файла баннера.Когда я это делаю, баннер перестает отображаться, если я вошел в систему.
Может ли кто-нибудь объяснить мне, почему он игнорирует первое условие, и особенно почему, только когда нет предложения?