我正在使用ERB创建一个rails应用程序作为我的模板并继续收到此错误:undefined method 'each' for nil:NilClass
。
我的 event.html.erb 如下所示:
<% @event.each do |event| %>
<a href="/registrations/new?level_id=1" class="btn"><%= event.date.strftime("%B %d %Y") %></a>
<br /><br />
<% end %>
我的 register_controller.rb 如下所示:
class RegisterController < ApplicationController
def index
@event = Event.all
end
end
def event
@event = Event.find_by id: params["id"]
end
我的 event.rb 型号:
class Event < ActiveRecord::Base
end
我的路线是:get 'register/event/:id' => 'register#event'
当我去/ register / event / 1 /我收到错误消息undefined method 'each' for nil:NilClass
。任何帮助将不胜感激。
谢谢!
答案 0 :(得分:2)
您正在尝试迭代单个对象。您的event.html.erb
文件应该只是:
<a href="/registrations/new?level_id=1" class="btn">
<%= @event.date.strftime("%B %d %Y") %>
</a>
此外,看起来DB中没有指定params[:id]
您的控制器也应如下所示:
class RegisterController < ApplicationController
def index
@event = Event.all
end
def event
@event = Event.find_by id: params[:id]
end
end
答案 1 :(得分:0)
看起来你要求它迭代单个实例。
可以选择:
<a href="/registrations/new?level_id=1" class="btn">
<%= @event.date.strftime("%B %d %Y") if @event %>
</a>
<br /><br />
event.html.erb
中的