ROR: неопределенный метод `'для nil: NilClass - PullRequest
2 голосов
/ 14 ноября 2010

Среда: Rails 3.0.1, MySQL
У меня есть таблица Users, и я хочу искать пользователей по городам.

У меня есть следующий код в users_controller:

def output
@results = User.select(:fname, :lname).where(['city = ?', params[:text1]]).all

output.html.erb в представлении:

<% @results.each do |r| %>
<%= @r.fname %>
<%= @r.lname %>
<% end %>

Он будет отображаться как неопределенный метод `fname 'для nil: NilClass .
Однако, если я наберу следующее в View, это сработает:

your search are <%= @results %>

Вывод:

your search are [#<User fname: "adam", lname: "huang">, #<User fname: "eric", lname: "huang">]

Таблица пользователей:

  class CreateUsers < ActiveRecord::Migration
  def self.up
    create_table :users do |t|
      t.integer :uid
      t.string :email
      t.string :password
      t.string :fname
      t.string :lname
      t.string :city
      t.integer :pid

      t.timestamps
    end
  end

1 Ответ

3 голосов
/ 14 ноября 2010

Попробуйте это

<% @results.each do |r| %>
<%= r.fname %>
<%= r.lname %>
<% end %>

Похоже, вы сделали простую опечатку.

...