【发布时间】:2019-05-20 09:42:48
【问题描述】:
正如我在 Active Record 上工作一样,我为 Active Reocrd 开发了不同的功能,例如 Avg、sum 和 count,因为它显示工作正常,而且 Chart,
但有一件事让我感到困惑,我仍然无法让它工作,它应该可以正常工作,因为我无法像显示所有数据列表一样
<table id="dttb" class="table table-hover">
<thead>
<tr>
<th> full name </th>
</tr>
</thead>
<tbody>
<tbody>
<% @user.each do |user| %>
<tr>
<td><%= user.fullname %></td>
</tr>
<% end %>
</tbody>
</tbody>
</table>
因为错误一直显示它应该可以工作
nil:NilClass 的未定义方法 `each'
当我查找信息时,其中大多数都提到了。每个都做,似乎我做错了,因为我已经使用了
<%= User.count(:user) %>
和
<%= column_chart User.group(:provider).count(:user) %>
它似乎可以作为查询功能正常工作。
所以我再次尝试使用 find_each
<% User.find_each do |user| %>
<tr>
<td><%= puts user.fullname %></td>
</tr>
<% end %>
并且错误消失了,但它不会显示在数据中,除非我输入“link_to”,否则它会显示空白,但它们会像
一样保持显示我已经安装了 AdminController.rb
class AdminController < ApplicationController
before_action :authenticate_user!
def index
@user = User.all
@tools = Tool.all
end
end
似乎我错过了一些东西,我看过谷歌或 stackover 流程,他们中的大多数答案与我写的这段代码非常相似
更新:因为我能够获取一些数据,例如电话号码或电子邮件
这是我写的代码
<% User.find_each do |user| %>
<tr>
<td><%= link_to user.id, user %></td>
<td><%= link_to user.email, user %></td>
<td><%= link_to user.created_at.strftime('%v'), user %></td>
<td><%= link_to user.fullname, user %></td>
<td><%= link_to user.phone_number, user %></td>
</tr>
<% end %>
但对全名感到沮丧,因为它应该显示但它没有
【问题讨论】:
-
请在最后一个 sn-p 中将
<% User.find_each do |user| %>更改为<% @user.each do |user| %>。还能用吗? -
是的,很遗憾,如果我将 'each' 更改为 'find_each' 并且它可以工作,它会显示“nil:NilClass 的未定义方法 `each'”,因此它无法正常工作
-
你没有在你的控制器中设置
@user,这就是为什么它说没有方法为零。视图文件的名称是什么? -
视图文件的名称是管理页面下的 _data.html.erb,因为在 localhost:3000/admin 上的 render 下使用此数据,@user 正在工作在除此数据之外的所有页面中
-
发现这个问题,这是另一个代码块,我修复了它,它显示正确,
标签: ruby-on-rails activerecord ruby-on-rails-5