环境: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
答案 0 :(得分:3)
试试这个
<% @results.each do |r| %>
<%= r.fname %>
<%= r.lname %>
<% end %>
看起来你做了一个简单的拼写错误。