check_box_tag и найти условие

  <%= check_box_tag('videos_count')%>

Если этот флажок установлен, в параметре будет указано "videos_count"=>"1" . В контроллере у меня это:

    videos_count = params[:videos_count]
  @cars = Car.paginate( :page => params[:page], :per_page => 10,  
                        :conditions => ["videos_count = ?", videos_count],  

когда флажок установлен, я вижу правильный параметр в журнале сервера, но поиск возвращает все результаты вместо результатов с video_count = 1.


person red    schedule 06.04.2010    source источник
comment
почему вы хотите возвращать автомобили только с одним видео? это может быть то, что вы хотите, но название video_count флажка тогда очень вводит в заблуждение. Мое предположение, если вы перепутали аргументы метода paginate. У меня нет документа под рукой, чтобы проверить прямо сейчас.   -  person Tilendor    schedule 07.04.2010


Ответы (2)


Проверьте тип данных 'videos_count', если это Tiny INT, то следующее может стоить. Хотя не проверял.

:conditions => ["videos_count = ?", true] 
person Salil    schedule 06.04.2010
comment
video_count — целое число. Вручную поставить true или 1 не получится. - person red; 06.04.2010
comment
Я также добавлю, что videos_count — это counter_cache, настроенный в модели видео. - person red; 06.04.2010
comment
поставь отладчик и проверь значения params[:videos_count] , @cars - person Salil; 06.04.2010
comment
Если videos_count является целым числом, почему вы используете флажок? - person Zachary Wright; 06.04.2010
comment
Я создал столбец has_vid в БД с логическим типом данных. В представлении я сделал поле с ‹%= check_box_tag('has_vid', true)%›. Но find по-прежнему не распознает логическое условие. - person red; 07.04.2010
comment
Я могу заставить логическое условие работать в поиске само по себе :conditions =› [has_vid = true] Но когда я интегрирую его со всем остальным, оно, похоже, не работает. car = params[:car][:category_id] min_age = params[:min_age] max_age = params[:max_age] has_vid = params[:has_vid] :conditions =› [category_id = ? И годы ›= ? И годы ‹= ? И has_vid = ? , пользователь, min_age, max_age, has_vid] && {:show =› true}, - person red; 07.04.2010

Что будет на выходе для этого?

:conditions => ["videos_count = ?", 1])

Я думаю, что проблема с вашей таблицей.

person randika    schedule 06.04.2010