未定义的find_users局部变量



我正在跟踪railcast 111进行高级搜索。我得到一个未定义的局部变量或方法' find_users'。我一行一行地跟着它走。不知道如何解决这个问题,因为我得到搜索后的错误。它在search# show中指向NoMethodError。如有任何帮助,不胜感激。

show.html:

搜索控制器:

  def new
    @search = Search.new
  end
  def create
    @search = Search.new(params[:search])
    if @search.save
      redirect_to @search
    else
      render 'new'
    end
  end
  def show
    @search = Search.find(params[:id])
    @users = @search.users
  end
end

search.rb:

  attr_accessible :age, :children, :ethnicity, :gender, :religion, :zip_code
  def users
    @users ||= find_users
    private
      def find_users
        users = User.order(:id)
        users = users.where(gender: gender) if gender
        users = users.where(zip_code: zip_code) if zip_code
        users = users.where(children: children) if children
        users = users.where(religion: religion) if religion
        users = users.where(ethnicity: ethnicity) if ethnicity
        users
      end
    end
    end

在您的search.rb中,您必须添加find_users方法,如下所示:

def find_users
  User.find(:all, :conditions => conditions)
end

那么您还必须包含所有方法conditions并指定它们。

最新更新