我创建了一个种子,可以通过事先在rails控制台中对其进行测试来确保工作。现在,我尝试在我的视图中显示实例变量@services,但是出现一个错误,提示它为零。
有什么想法吗?
谢谢
//home.html.erb
<div>
<% @services.each do |service| %>
<%= service.name %>
<% end %>
</div>
//services_controller.rb
class ServicesController < ApplicationController
before_action :set_service, only: [:index, :show]
def index
@services = Service.all
end
def show
set_service
end
private
def set_service
@service = Service.find(params[:id])
end
end
//service.rb
class Service < ApplicationRecord
validates :name, presence: true
validates :description, presence: true
has_many :reviews
end
这是正在呈现的错误
nil:NilClass的未定义方法“ each”
答案 0 :(得分:1)
notSynchronizedMethod()
中的root 'services#index'
config/routes.rb
的内容移至home.html.erb
views/services/index.html.erb
更改为before_action :set_service, only: [:index, :show]
请参阅有关问题的评论:)
答案 1 :(得分:0)
更改此代码:
before_action :set_service, only: [:index, :show]
对此:
before_action :set_service, only: [:show]