Как исправить: «Элементы из базы данных отсутствуют после развертывания на Heroku» - PullRequest
0 голосов
/ 12 октября 2019

После развертывания веб-приложения (онлайн-магазина), написанного на Ruby On Rails на Heroku, продукты из базы данных не отображаются. Я развернул и перенес базу данных, используя «git push heroku master», а затем «heroku run rails db: migrate». Я использую PostgreSQL и Paperclip gem для загрузки изображений.

Я попытался загрузить новые продукты из развернутого приложения, и оно работает.

                <% @products.each do |product| %>
                    <div class="col-lg-4 col-md-6 mb-4">
                        <div class="cart h-100">
                            <% if product.image.present? %>
                                <%= link_to image_tag(product.image.url(:thumb)), product_path(product)%>
                            <% end %>
                            <div class="card-body">
                                <h4 class="card-title"><%= product.name %></h4>
                                <h5><%= product.price %></h5>
                                <p class="card-text"><%= product.description %></p>
                            </div>
                            <div class="card-footer">
                                <% if current_user && current_user.admin? %>
                                    <%= link_to 'Edit', edit_product_path(product) %>
                                    <%= link_to 'Delete', product_path(product), method: :delete, data: { confirm: 'Are you sure?' } %>
                                <% elsif current_user && !current_user.admin %>
                                    <%= form_tag(line_items_path(product_id: product.id)) do %>
                                        <%= number_field_tag(:quantity, 1) %>
                                        <%= submit_tag('Add to shopping cart') %>
                                    <% end %>
                                <% elsif !user_signed_in? %>
                                <% end %>
                            </div>
                        </div>
                    </div>
                <% end %>       

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

1 Ответ

1 голос
/ 13 октября 2019

Ваши базы данных по умолчанию полностью независимы между различными средами Rails: все, что вы делаете на своей локальной машине, существует только на вашей локальной машине, а не на Heroku (и наоборот). (В конце концов, вы не хотели бы, чтобы ваши тестовые продукты отображались в вашем реальном магазине.)

Если у вас есть конкретные записи базы данных, которые всегда должны присутствовать - будь вы на своем локальном компьютере для разработки илив вашей тестовой среде или в производстве на Heroku - вот почему существует функция "seed" *1004* Active Record.

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