Как убрать logi c из вида рельсов, когда в каждом случае разные стили - PullRequest
0 голосов
/ 08 апреля 2020

Моя проблема в том, что у меня есть logi c, но в каждом случае разные стили. Переместить логи c в .ex Presenter не проблема, но как справиться со стилем

- trumps.each do |trump| 
%tr
 %td
  - if trump.isgreate
    .some_style
     .some_style--button
      =link_to trump.picture
  - else
    .someother_style
     .someother_style--button
      =link_to trump.lies

Ответы [ 2 ]

1 голос
/ 08 апреля 2020

В основном вам нужно переместить логи c в View Helpers.

# create helper in relevant *helper.rb

def outer_div(trump)
  trump.isgreate ? 'some_style' : 'someother_style'
end

def inner_button_div(trump)
  trump.isgreate ? 'some_style--button' : 'someother_style--button'
end

dev link_to_trump
  link_to(trump.isgreate ? trump.picture : trump.lies)
end

- trumps.each do |trump| 
  %tr
   %td
     %div{class: outer_div(trump)}
       %div{class: inner_button_div(trump) }
         = link_to_trump(trump)
0 голосов
/ 08 апреля 2020

А как насчет css классов?

В любом случае, стилизация не должна выполняться в контроллерах или моделях.

Хотя для того, чтобы любой ответ был актуальным, вы должны предоставить свою среду разработки. Например, версию ruby и rails, которую вы используете, и даже вашу операционную систему ... все может быть по-разному в зависимости от этого.

Обычно люди не собираются пытаться помочь вам, но Я когда-то был таким и задавал вопросы, не глядя сначала на вещи.

Для Rails 6 добавьте файл css в app / assets / stylesheets. Вы должны увидеть что-то подобное в своем приложении. html .erb файл (файл глобального представления)

   <%= stylesheet_link_tag 'application', media: 'all', :'data-turbolinks-track' => 'reload' %>

Используйте ваши контроллеры для обработки ввода пользователя и установки переменных / извлечения данных модели для ваших представлений.

Удачи, приятель.

...