我尝试在类似于官方教程http://guides.rubyonrails.org/getting_started.html的轨道上创建应用程序,但是我使用了这些研究而不是文章。如果我在哪里,当您尝试查看所有研究的列表时,我收到了错误。我的错误在哪里?
undefined method `name' for nil:NilClass
ResearchesController
class ResearchesController < ApplicationController
def new
end
def show
@research = Research.find(params[:id])
end
def index
@researches = Research.all
end
def create
@research = Research.new(research_params)
@research.save
redirect_to @research
end
private
def research_params
params.require(:research).permit(:name, :period_of_execution, :cost)
end
end
index.html.erb
<h1>Listing of our researches</h1>
<table>
<tr>
<th>Name:</th>
<th>Period of execution:</th>
<th>Cost:</th>
</tr>
<% @researches.each do |research| %>
<tr>
<td><%= @research.name %></td>
<td><%= @research.period_of_execution %></td>
<td><%= @research.cost %></td>
</tr>
<% end %>
</table>
答案 0 :(得分:1)
你必须写:
<td><%= research.name %></td>
<td><%= research.period_of_execution %></td>
<td><%= research.cost %></td>
因为您当前正在引用此处声明的变量:
<% @researches.each do |research| %>
答案 1 :(得分:0)
在您看来,您需要参考&#39; research&#39;而不是&#39; @ research&#39;。
这是一件小事。