ROR:未定义的方法`'为nil:NilClass

时间:2010-11-14 01:00:28

标签: ruby-on-rails undefined

环境: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 %>

对于nil:NilClass ,它将显示为未定义的方法`fname'。
但是,如果我在View中键入以下内容,则可以:

your search are <%= @results %>

输出结果为:

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

Users表是:

  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 个答案:

答案 0 :(得分:3)

试试这个

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

看起来你做了一个简单的拼写错误。