环境:Rails 3.0.1,MySQL
我有一个Users表,我想按城市搜索用户。
我在 users_controller 中有以下代码:
def output
@results = User.select(:fname, :lname).where(['city = ?', params[:text1]]).all
View 中的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">]
用户表是:
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
最佳答案
试试这个
<% @results.each do |r| %>
<%= r.fname %>
<%= r.lname %>
<% end %>
看来您犯了一个简单的拼写错误。
关于ruby-on-rails - 错误: undefined method ` ' for nil:NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4175595/