2009-05-28 11 views
0

プロパティデータベースの選択ボックスに自分のデータベースにリストされているユニークな郡を表示しようとしています。私はこれを行う方法を考え出しましたが、選択された値にアクセスする方法を理解できません。これは、主にHTML選択名の出力方法と関係しています。Rails collection_select検索の問題

マイフォームコード、郡は私の財産モデルの属性です:

<%= collection_select(:property, :county, @Counties, :county, :county, {:prompt => true}) %> 

これは、それは[]の選択名「プロパティ[郡内でHTML

<select id="property_county" name="property[county]"><option value="">Please select</option> 
<option value="Pearl River">Pearl River</option> 
<option value="Marion">Marion</option> 
<option value="Stone">Stone</option> 
<option value="Lamar">Lamar</option> 
<option value="Forrest">Forrest</option> 
<option value="Jones">Jones</option> 
<option value="Washington">Washington</option></select> 

を出力します]検索フォームの他の項目はselect_tagを使っているので、出力は "property [min_price]"ではなく "min_price"です。これは検索結果をまとめようとすると構文エラーが発生します私のプロパティモデルの配列:

def self.find_by_lcc(params) 
where = [] 
unless params[:mls].blank? 
where << "mls = :mls" 
end 
unless params[:county].blank? 
where << "county = :county" 
end 
unless params[:min_acreage].blank? 
where << "acreage >= :min_acreage" 
end 
unless params[:max_acreage].blank? 
where << "acreage <= :max_acreage" 
end 
unless params[:min_price].blank? 
where << "price >= :min_price" 
end 
unless params[:max_price].blank? 
where << "price <= :max_price" 
end 

if where.empty? 
[] 
else 
find(:all, 
:conditions => [where.join(" AND "), params], 
:order => "city, price desc") 
end 

郡の問題のため、すべてのレコードがその郡内のプロパティではなくリストされています。私は取得していますブラウザのURL文字列は次のとおりです。私は数日間、この上で答えを検索しましたし、私はそれは私が私の検索配列をコンパイルして使用する必要がある単純な構文の方法だと確信してい

public/land?mls=&property[county]=Stone&min_acreage=0&max_acreage=16000000&min_price=0&max_price=1600000&commit=Search 

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

答えて

2

私はあなたがxxx[yyy]のような名前を見るたびに、あなたが

params[:property][:county] 

を探していると思いますが、Railsは自動的に最初のキーXXXを使ってアクセスしているあなたのためのparamsオブジェクト内のハッシュ、キーYYYを構築します。