2016-09-09 15 views
-3

私はレールが新しく、問題が発生しているプロジェクトに取り組んでいます。私は同じジップコードを持つジムをすべて表示しようとしています。私が下のコードを試したとき、それは1だけを表示し、他のものは表示しません。同じ郵便番号のジムをすべて表示するにはどうすればいいですか?私のデータベースから表示

コントローラ

def gym 
    @fitness = Fitness.find_by(zip_code: params[:zip_code]) 
end 

gym.html.erb

<%= @fitness.name %> 
+3

一般的な開発者のためのアドバイスです:あなたが作業しているフレームワーク、ツール、ライブラリがあれば、[documentation](http://api.rubyonrails.org/classes/ActiveRecord/)の可能性があります。 FinderMethods.html#method-i-find_by)。あなたが困ったときに怠け者に助けを求めてはいけません。いくつかの研究を行います。ドキュメントを探します。それを読んで。あなたが学んだことを適用してください。あなたが自分自身を助けないタイプの人なら、あなたはこの業界で長く続くことを期待するべきではありません。 – MarsAtomic

答えて

1

あなたは自分自身にこれをやっています。 definitionによって、#find_byは単一のレコードまたはnilを返します。あなたは、おそらく代わりに#whereをしたい:

Fitness.where(zip_code: params[:zip_code]) 

それはまだあなたが有効なクエリを作成していることを確認するために、テーブルのデータとあなたのparamsハッシュのコンテンツの両方をチェックし、動作しない場合。

+0

ありがとうございました! – codecitynyc

1
def gyms 
    @fitness = Fitness.where("zip_code = ?", params[:zip_code]) 
end 
+0

これを簡潔なハッシュ表記から、プレースホルダバージョンのロングフォーム文字列に反転させた理由がわかりません。 'where(zip_code:params [:zip_code])'でなければならないが、そうでなければ正しい。 – tadman

関連する問題