[英]i want to list all my users from the database, i am getting a strange error - undefined method `each'.What should i do?
这是列出我的用户的代码
<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
Govornik 是我的模型这里是我的模型的代码和该模型的迁移
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
问题结论:
我想显示连接到模型 govornik 的数据库表 Govornici 中的所有 mi 用户,并且我从错误页面中获得以下错误图像
为什么这是一个“奇怪的错误”? 这是一个完全预期的错误。 这个:
@govornik = Govornik.new
创造了一个新的Govornik
记录。 并且,新的Govornik
记录不包含方法each
。 因此,该错误正是您所期望的。
如果你想要一个所有Govornik
记录的集合,那么你应该创建一个更像的变量:
@govorniks = Govornik.all
在这种情况下,变量@govorniks
(将是ActiveRecord::Relation
)将具有each
方法,您可以使用它来迭代所有记录。
顺便说一句,我建议您从控制台复制错误并将它们作为文本包含在您的问题中。 在某些设备上很难阅读屏幕截图。 而且,如果我们需要这样做来帮助您解决问题,则无法复制和粘贴。 此外,屏幕截图错误不会显示整个堆栈跟踪,这有时会有所帮助。
@jvillian 的回答是正确的。
def index
@govorniks = Govornik.all
end
下一次,你可以使用脚手架。 开始时创建控制器、模型和视图要容易得多。 您可以学习从输出中逆向工程代码。
rails g scaffold Govornik name:string description:string
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.