2009-05-28 2 views
0

Я пытаюсь отобразить уникальные округа, перечисленные в моей базе данных, в поле выбора для базы данных свойств. Я выяснил, как это сделать, но теперь я не могу понять, как получить доступ к выбранному значению выбора. В основном это связано с тем, как выводится имя выбора HTML.Rails collection_select search issue

Мой код формы, графство атрибут для моей модели собственности:

<%= 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> 

Это [] 's в выберите имя «свойство [графство ], который дает мне возможность. Другие элементы в форме поиска используют select_tag, поэтому выход просто «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

Я думаю, что вы ищете

params[:property][:county] 

Всякий раз, когда вы видите имя как xxx[yyy], Rails автоматически создает хэши в объекте Params для вас, которые первый доступ с ключом ххх, а затем клавишу ууу.