2016-06-30 8 views
0

ユーザを名前で検索するために使用できる検索ボックスを作成しようとしています。私が実行している問題はwill_paginate宝石を使いたいということです。このコード行@users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present?は、問題があると私は思っています。モデルにパラメータを含むスコープを適用してwill_paginateを使用する

class UsersController < ApplicationController 

def index 
    @users = User.all.paginate(page: params[:page]) 
    @users = User.name(params[:name]).paginate(page: params[:page]) if params[:name].present? 
end 

class User < ActiveRecord::Base 
    scope :name, -> (name) { where("name ILIKE ?", "%#{name}%")} 
end 

users/index.html.erb 

    <%= form_tag users_path, method: :get do %> 
    <%= text_field_tag :name, params[:name], :placeholder => "Search by name" %> 
    <%= submit_tag "Search"%> 
    <% end %> 
+0

問題の内容は明記していません。 – DiegoSalazar

+0

このコードでアプリがクラッシュします。私はページを開くことができません。私がヘロクから得るのは、「状態が崩壊し始めたからです。 at =エラーコード= H10 desc = "App crashed" –

+0

ランタイムレベルのコードではこのエラーは発生しません。クラスレベルのコードのどこかに構文エラーがあり、起動時にアプリケーションがクラッシュする可能性があります。 Procfileはありますか? Procfileのweb:declarationと同じコマンドを使って、あなたのアプリケーションをローカルで起動できますか? – DiegoSalazar

答えて

0

:名前をスコープとして使用することはできません。私がそれを変更したとき:namesearchコードが働いた。

class User < ActiveRecord::Base 
    scope :nameseach, -> (name) { where("name ILIKE ?", "%#{name}%")} 
end 

def index 
    @users = User.all.paginate(page: params[:page]) 
    @users = User.namesearch(params[:name]).paginate(page: params[:page]) if params[:name].present? 
end 
0

コントローラファイルの1行目にスペースがあります。スーパークラスに「Application Controller」という空白があります

これは、Herokuの起動時にH10エラーが発生する原因になります。

+0

それは質問を入力するときに私が作ったばかりのエラーでした。コードに何か問題があります。 –

関連する問題