На веб-странице Rails показано больше элементов модели, - PullRequest
0 голосов
/ 29 января 2019

Я создал модель с именем Категория , которую я заполнил данными в файле seed.db , как показано ниже:

Category.create([{
   title: 'Glutein-free hoagie with tofu',
   price: Faker::Number.decimal(2)
  }])

Category.create([{
  title: 'Hoagie with Pesto and Mozzarela',
  price: Faker::Number.decimal(2)
  }])

Category.create([{
  title: 'Hoagie with fried veggies and soy meat',
  price: Faker::Number.decimal(2)
  }])

Category.create([{
  title: 'Protein bread with sweet potato, carrots and vegan mayo',
  price: Faker::Number.decimal(2)
  }])

Теперь,Я хочу отобразить эти результаты на своей веб-странице, поэтому я подключил его к файлу category.index.html через rout.db , как показано здесь:

Rails.application.routes.draw do
  resources :order_items
  resources :orders
  resources :categories
  resources :users
  resources :customers
  root to: 'categories#index'
  get 'home/index'
end

Несмотря на это, когда яперейти на localhost, я вижу 8 элементов вместо 4, остальные 4 дублируют те, что я создал.Кроме того, дубликаты имеют разные значения, что означает, что они, вероятно, хранятся дважды внутри?Вот что показано на странице:

Categories
Title   
Glutein-free hoagie with tofu   29.84   Show    Edit    Destroy
Hoagie with Pesto and Mozzarela 54.11   Show    Edit    Destroy
Hoagie with fried veggies and soy meat  39.61   Show    Edit    Destroy
Protein bread with sweet potato, carrots and vegan mayo 83.89   Show    Edit    Destroy
Glutein-free hoagie with tofu   81.57   Show    Edit    Destroy
Hoagie with Pesto and Mozzarela 34.42   Show    Edit    Destroy
Hoagie with fried veggies and soy meat  16.71   Show    Edit    Destroy
Protein bread with sweet potato, carrots and vegan mayo 30.13   Show    Edit    Destroy
New Category

А это файл index.html:

<p id="notice"><%= notice %></p>
<h1>Categories</h1>
<table>
  <thead>
    <tr>
      <th>Title</th>
      <th colspan="3"></th>
    </tr>
  </thead>
  <tbody>
    <% @categories.each do |category| %>
      <tr>
        <td><%= category.title %></td>
        <td><%= category.price %></td>
        <td><%= link_to 'Show', category %></td>
        <td><%= link_to 'Edit', edit_category_path(category) %></td>
        <td><%= link_to 'Destroy', category, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>
<br>
<%= link_to 'New Category', new_category_path %>

Заранее извиняюсь, если сообщение слишком длинное, но яне знаю, как еще публиковать код, так как есть много классов, которые связаны между собой.

РЕДАКТИРОВАТЬ: Я решил это, удалив все данные в таблице, вызвав в консоли rails Category.delete_all

Ответы [ 2 ]

0 голосов
/ 29 января 2019

лучший способ сделать это

в seed.rb

10.times do
    Category.create([{  
        title:Faker::Food.dish,
        price: Faker::Number.decimal(2),

    }])
end

, а затем в терминале

rake db:seed

это создаст 10 данных категории

0 голосов
/ 29 января 2019

Похоже, вы запускаете rake db:seed дважды, и поэтому вы повторяли записи с разными ценами.Вы можете удалить их безопасно, и все должно работать нормально.

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