2010-11-14 30 views
2

Environnement: Rails 3.0.1, MySQL
J'ai une table Utilisateurs, et je veux rechercher les utilisateurs par ville.ROR: méthode non définie `'pour nil: NilClass

je le code suivant dans users_controller:

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

output.html.erb dans Vue:

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

Il sera affiché comme méthode non définie FNAME » pour nulle: NilClass.
Cependant, si je tape suivante Voir, cela fonctionne:

your search are <%= @results %> 

La sortie est:

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

Le tableau des utilisateurs est:

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 

Répondre

3

Essayez cette

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

On dirait que vous avez fait une simple faute de frappe.

+0

ça marche! Merci ... Q_Q Je suis tellement stupide .. – Niao