Наряду с отличным ответом позвольте мне добавить кое-что, что может помочь вам сделать взгляды более четкими. Может быть, не имеет отношения к вашему вопросу напрямую, но может помочь вам понять, как вы можете сделать вид красивым.
Первое, что заставит взгляды выглядеть хорошо, это помощники . Хотя рельсы предоставляют помощники для каждого контроллера, помощники являются глобальными, то есть их можно использовать где угодно в любых представлениях. Таким образом, глобальное форматирование должно быть сделано с помощниками. Например, если вам нужен форматер даты, который необходимо использовать во многих файлах просмотра, вы можете создать вспомогательный файл с именем date_helper.rb
в app/helpers
и указать желаемое форматирование даты -
module DateHelper
def formatted_date(date)
date.strftime([%m/%d/%Y')
end
end
Далее что люди любят называть шаблон Presenter . Это полезно, если вы не хотите, чтобы некоторые логи c были доступны всем представителям. Некоторые логики c, которые не кажутся принадлежащими контроллеру или модели, помещены туда, чтобы сделать представления читаемыми. Предположим, что у вас есть представление, как показано ниже, которое немного запутанно -
<p>
Post title: <%= post.title.gsub("forbidden word", "") %>
<%= link_to "Read post", post, class: "w-75 p-3 text-#{post.draft? ? "orange" : "green"} border-#{post.draft? ? "orange" : "green"}" %>
</p>
Чтобы сделать это более красивым, вы можете создать класс презентатора с именем post_presenter.rb
, который должен находиться в app/presenters
, и написать некоторый код, подобный -
class PostPresenter
def initialize(post)
@post = post
end
def title_without_forbidden_words
@post.title.gsub("forbidden word", "")
end
def css_color
@post.draft? ? "orange" : "green"
end
end
и в представлении -
<% presenter = PostPresenter.new(post) %>
<p>
Post title: <%= presenter.title_without_forbidden_words %>
<%= link_to "Read post", post, class: "w-75 p-3 text-#{presenter.css_color} border-#{presenter.css_color}" %>
</p>
Такой способ может быть более четким, а также может быть спасителем для разработчиков веб-интерфейса. Это два лучших метода, которые я нашел до сих пор, которые делают рельсы красивыми, и я всегда стараюсь их использовать.
Примеры взяты с сайта rubyguides . Благодаря им