Я хочу перечислить всех своих пользователей из базы данных, я получаю странную ошибку - неопределенный метод `each '. Что мне делать? - PullRequest
0 голосов
/ 06 октября 2018

это код для перечисления моего пользователя

<div>

  <% @govornik.each do |g| %>

     <p><%= g.name %></p>
     <p><%= g.description %></p>

   <% end %>

</div>

это код от контроллера

class GovorniciController < ApplicationController
     def new
     end

     def show
       @govornik = Govornik.new
     end

end

Говорник это моя модель, вот код моей модели и миграцииэтой модели

class Govornik < ApplicationRecord

end

код миграции

class CreateGovorniks < ActiveRecord::Migration[5.2]
  def change
    create_table :govorniks do |t|
      t.string :name
      t.string :description

      t.timestamps
    end
  end
end

решение проблемы:

я хочу отобразить всех пользователей mi из таблицы базы данных Govornici, которыеподключен к модели govornik, и я получаю следующую ошибку изображение со страницы ошибки

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Ответ @jvillian правильный.

def index
 @govorniks = Govornik.all
end 

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

rails g scaffold Govornik name:string description:string
0 голосов
/ 06 октября 2018

Почему это "странная ошибка"?Это совершенно ожидаемая ошибка.Это:

@govornik = Govornik.new

создает новую запись Govornik.И новая запись Govornik не включает метод each.Таким образом, ошибка именно то, что вы ожидаете.

Если вы хотите получить коллекцию всех ваших Govornik записей, вам следует создать переменную, например:

@govorniks = Govornik.all

В этом случае переменная @govorniks (которая будетActiveRecord::Relation) будет иметь метод each, который вы можете использовать для перебора всех записей.

Кстати, я предлагаю вам скопировать ошибки с консоли и включить их в текст в вопросе.Снимки экрана трудно читать на некоторых устройствах.И это делает невозможным копирование и вставку в случае, если нам нужно сделать это, чтобы помочь вам с вашей проблемой.Кроме того, ошибки снимка экрана не показывают всю трассировку стека, которая иногда может быть полезна.

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