1

高度な検索のために 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
4

1 に答える 1

2

次のようsearch.rbに、メソッドを追加する必要があります。find_users

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

次に、すべてのメソッドも含めてconditions指定する必要があります。Railscastに従ってください。非常に明確です。

于 2013-04-30T16:17:33.280 に答える