Ruby on rails 未定义的方法';每个';对于nil:NilClass,对于@topics
我试图在页面上显示内容。我有: index.html.erbRuby on rails 未定义的方法';每个';对于nil:NilClass,对于@topics,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图在页面上显示内容。我有: index.html.erb <if !user_signed_in? %> <%= link_to 'Download Topics', resumes_url, :class => 'btn btn-danger' %> <%= form_tag topics_path, :method => 'get' do %> <%= text_field_tag :search, params[:s
<if !user_signed_in? %>
<%= link_to 'Download Topics', resumes_url, :class => 'btn btn-danger' %>
<%= form_tag topics_path, :method => 'get' do %>
<%= text_field_tag :search, params[:search] %>
<%= submit_tag "Search" %>
<% end %>
<% @topics.each do |topic| %>
<div class="topic">
<h3><%= topic.title %></h3>
<p><%= topic.id %></p>
<p class="text-justify" ><%= topic.body %></p>
<p><%= topic.date %></p>
<%= image_tag topic.image.url, class: "topic-show" if topic.image? %>
</div>
<% if current_user && current_user.admin? %>
<%= link_to "Edit", edit_topic_path(topic), :class => 'btn btn-default' %>
<%= link_to "Destroy", topic, :class => 'btn btn-default', method: :delete, data: {confirm: 'Are you sure?'} %>
<% end %>
<%= link_to "Show", topic_path(topic), :class => 'btn btn-default' %>
<% end %>
<div>
<%= will_paginate @topic, renderer: BootstrapPagination::Rails %>
</end>
错误被抛出
我不知道该怎么办。我试图补充:
@topics=Topic.all
到
主题#索引
,但这似乎无法解决问题。此错误仅表示@topics
为空
要解决此问题,您需要在查看控制台的同时刷新页面
检查这些行运行时正在运行的查询:
@topics = Topic.search(params[:search]).paginate(:page => params[:page], :per_page => 5
@topics = Topic.all
如果无法在控制台中发现问题,请将查询复制到数据库GUI中并运行查询,修改查询,直到获得预期结果并编辑查询
我认为您的问题可能与正在传递的参数有关
您应该在查询之前添加此选项,以查看您选择的参数
p 'my params'
p params[:search]
p params[:page]
页。我建议让PrPype成为一个变量,当代码通过查看所有硬编码值并在代码块的中间更改它们时会变得更容易。
数据库中是否有主题?什么动作被调用?@是的,我确实有显示完整日志的主题,从请求启动到崩溃,日志都在您运行rails服务器的控制台中。它们可能有用。您发布的图像没有用处。此外,图像是不好的,因为我们无法从中复制和粘贴(如果需要)。而且,在某些设备上很难看到它们。@topics = Topic.search(params[:search]).paginate(:page => params[:page], :per_page => 5
@topics = Topic.all
p 'my params'
p params[:search]
p params[:page]