Извлекать и отображать данные Active Record - PullRequest
0 голосов
/ 03 марта 2019

Я хотел бы показать несколько вещей на моей домашней странице, все они были извлечены из разных таблиц в базе данных, и я просто хотел найти лучший способ сделать это.

Чтение через https://guides.rubyonrails.org/v2.3.11/active_record_querying.html, Мне удалось показать правильные детали, но это лучший способ сделать это?Есть ли проблемы с производительностью, которые могут возникнуть при использовании этого метода?

<% about = Page.find(1) %>
<h1 class="title"><%= about.title %></h1>
<% unless about.subtitle.blank? %>
    <h2 class="subtitle"><%= about.subtitle %></h2>
<% end %>
<p><%= about.body %></p>

И по аналогичной теме, как лучше всего перебирать и отображать данные?Вот чего я хотел бы достичь:

<div class="tabs">
    <ul>
        <% Chapter.all.each do |c| %>
            <li><a><%= chapter.title %></a></li>
        <% end %>
    </ul>
</div>

Любые советы с благодарностью!

1 Ответ

0 голосов
/ 03 марта 2019

Чтобы достичь этого

<div class="tabs">
    <ul>
        <% Chapter.all.each do |c| %>
            <li><a><%= c.title %></a></li>
        <% end %>
    </ul>
</div>

Есть несколько вещей, которые должны присутствовать:

Первый шаг

Вам необходимо иметьмодель или набор данных, которые представляют ваши данные, например, у вас может быть файл Person.rb с именем и цветом волос в качестве свойств.Это может быть ваша модель, все, что она делает, это определяет набор данных.

class Person < ApplicationRecord
    scope :latest_Person, -> { order(date: :desc) }

    validates :name, presence: true, length: { minimum: 5 }
    validates :haircolor, presence: true
end

Второй шаг

Вам необходимо объявить или создать экземпляр этой модели в вашем классе контроллераНапример, вам может понадобиться показать список людей в определенном порядке.Это может быть обработано с помощью scopes.Пример

def persons
   # Render all persons
   @persons_all = Person.latest_Person
end

Третий шаг

Вызов объявленного объекта из класса контроллера в представлении.В основном, все, что вы делаете, это ссылаетесь на объявленный объект.Пример

<% if @persons_all.empty? %>
  <h2>No persons available</h2>
<% else %>
   <% @persons_all.each do |p| %>
      <p><%= p.name %></p>
      <p><%= p.haircolor %></p>
   <% end %>
<% end %>

Отметьте как ответ, это помогло, спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...