find_users 的未定义局部变量
Posted
技术标签:
【中文标题】find_users 的未定义局部变量【英文标题】:undefined local variable for find_users 【发布时间】:2013-04-24 15:26:55 【问题描述】:我正在关注 railscast 111 进行高级搜索。我得到一个未定义的局部变量或方法“find_users”。我一行一行地跟着它。不知道如何解决这个问题,因为我在搜索后得到了错误。它指向 Searches#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
搜索.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
【问题讨论】:
【参考方案1】:在您的search.rb
中,您必须添加方法find_users
,如下所示:
def find_users
User.find(:all, :conditions => conditions)
end
那么您还必须包含所有方法conditions
并指定它们。请关注railscast,非常明确。
【讨论】:
以上是关于find_users 的未定义局部变量的主要内容,如果未能解决你的问题,请参考以下文章
FastlaneCore::Helper::AppcenterHelper:Class (NameError) 的未定义局部变量或方法“所有者”