Ruby on rails “nilClass”与rails 4上的地理编码器

Ruby on rails “nilClass”与rails 4上的地理编码器,ruby-on-rails,ruby,ruby-on-rails-3,rails-geocoder,Ruby On Rails,Ruby,Ruby On Rails 3,Rails Geocoder,我正在尝试在rails 4应用程序中实现geocoder,但初始化时遇到问题。该应用程序正确地创建、删除、编辑等,但当我尝试在show模板中实现nearbys方法时,我在Eventsshow中得到了一个NoMethodError,其中包含nil:NilClass的未定义方法“each”。当我在rails 3上运行该应用程序并可以访问attr_时,该应用程序可以完美地执行所有操作,但当我切换到rails 4并更改为强参数时,就会出现此错误。我知道这是一件非常简单的事情,我只是看不出我遗漏了什么 以

我正在尝试在rails 4应用程序中实现geocoder,但初始化时遇到问题。该应用程序正确地创建、删除、编辑等,但当我尝试在show模板中实现nearbys方法时,我在Eventsshow中得到了一个NoMethodError,其中包含nil:NilClass的未定义方法“each”。当我在rails 3上运行该应用程序并可以访问attr_时,该应用程序可以完美地执行所有操作,但当我切换到rails 4并更改为强参数时,就会出现此错误。我知道这是一件非常简单的事情,我只是看不出我遗漏了什么

以下是我的事件模型:

这是我的展示模板:

<div id="header"></div>

<p>
  <b>Name:</b>
  <%= @event.name %>
</p>

<p>
  <b>Event date:</b>
  <%= @event.try(:event_date).strftime("%a, %B %d") %>
</p>

<p>
  <b>Start time:</b>
  <%= @event.try(:start_time).strftime("%l:%M%p") %>
</p>

<p>
  <b>End time:</b>
  <%= @event.try(:end_time).strftime("%l:%M%p") %>
</p>

<p>
  <b>Address:</b>
  <%= @event.address %>
</p>

<p>
  <b>Latitude:</b>
  <%= @event.latitude %>
</p>

<p>
  <b>Longitude:</b>
  <%= @event.longitude %>
</p>

<p>
  <b>Description:</b>
  <%= @event.description %>
</p>

<p>
  <b>Organizer:</b>
  <%= @event.user.name %>
</p>

<%= image_tag "http://maps.google.com/maps/api/staticmap?size=450x300&sensor=false&zoom=16&markers=#{@event.latitude}%2C#{@event.longitude}" %>

<h3>Nearby events</h3>
<ul>
  <% for event in @event.nearbys(10) %>
      <li><%= link_to event.address, event %> (<%= event.distance.round(2) %> miles)</li>
  <% end %>
</ul>

<%= link_to 'Edit', edit_event_path(@event) %> |
<%= link_to 'Back', events_path %>
我在@event.nearbys10中的事件显示模板的第52行得到错误。
我非常感谢任何帮助

问题出在我的seeds.rb文件上。“创建”操作正确地对:纬度和:经度字段进行地理编码,但我在第一次对数据库进行种子设定时没有为这些字段输入值。

nearbys的代码在哪里?我认为nearbys应该来自地理代码gem。啊,好的,我以为您实现了它。您检查事件是否为零了吗?“如果不是的话,nearbys不归零吗?”Mohammad AbuShady,谢谢你。您的问题使我想到:从events.id=?LIMIT 1[[id,1]]=>在那里我注意到纬度和经度的nil字段。
class EventsController < ApplicationController
  before_action :authenticate_user!
  load_and_authorize_resource

  def index
    if params[:search].present?
      @events = Event.near(params[:search], 50, :order => :distance)
    else
      @events = Event.all
    end
  end

  def show
  end

  def new
  end

  def edit
  end

  def create
    @event = Event.new(event_params)
    @event.user_id = current_user.id

    respond_to do |format|
      if @event.save
        format.html { redirect_to @event, notice: 'Event was successfully created.' }
        format.json { render :show, status: :created, address: @event }
      else
        format.html { render :new }
        format.json { render json: @event.errors, status: :unprocessable_entity }
      end
    end
  end

  def update
    respond_to do |format|
      if @event.update(event_params)
        format.html { redirect_to @event, notice: 'Event was successfully updated.' }
        format.json { render :show, status: :ok, address: @event }
      else
        format.html { render :edit }
        format.json { render json: @event.errors, status: :unprocessable_entity }
      end
    end
  end

  def destroy
    @event.destroy
    respond_to do |format|
      format.html { redirect_to events_url, notice: 'Event was successfully destroyed.' }
      format.json { head :no_content }
    end
  end

  private
  def event_params
    params.require(:event).permit(:name, :event_date, :start_time, :end_time, :address, :latitude, :longitude, :description, :user_id)
  end
end
<div id="header"></div>

<p>
  <b>Name:</b>
  <%= @event.name %>
</p>

<p>
  <b>Event date:</b>
  <%= @event.try(:event_date).strftime("%a, %B %d") %>
</p>

<p>
  <b>Start time:</b>
  <%= @event.try(:start_time).strftime("%l:%M%p") %>
</p>

<p>
  <b>End time:</b>
  <%= @event.try(:end_time).strftime("%l:%M%p") %>
</p>

<p>
  <b>Address:</b>
  <%= @event.address %>
</p>

<p>
  <b>Latitude:</b>
  <%= @event.latitude %>
</p>

<p>
  <b>Longitude:</b>
  <%= @event.longitude %>
</p>

<p>
  <b>Description:</b>
  <%= @event.description %>
</p>

<p>
  <b>Organizer:</b>
  <%= @event.user.name %>
</p>

<%= image_tag "http://maps.google.com/maps/api/staticmap?size=450x300&sensor=false&zoom=16&markers=#{@event.latitude}%2C#{@event.longitude}" %>

<h3>Nearby events</h3>
<ul>
  <% for event in @event.nearbys(10) %>
      <li><%= link_to event.address, event %> (<%= event.distance.round(2) %> miles)</li>
  <% end %>
</ul>

<%= link_to 'Edit', edit_event_path(@event) %> |
<%= link_to 'Back', events_path %>