2017-02-14 2 views
0

У меня есть сайт, на котором пользователи могут искать каталог спортивных лагерей по стране, цене, сезону и организатору. Похоже, это:Поиск по клику изображения в Rails

Search

Когда пользователь нажимает кнопку поиска я получаю 'страницу поиска и добавьте Params в URL, который затем делает список спортивных лагерей, соответствующих критериям Params. Это работает безупречно. URL-адрес выглядит примерно так: "localhost:3000/camps?utf8=✓&country=Spain&organiser=Brett&season=Summer&price=5000&commit=Search"

Далее по страницам У меня есть список изображений с наиболее популярными странами, например. "Испания". Мой вопрос таков:

Как добавить ссылку на изображение, которое затем будет искать все лагеря со страной = Испания?

Модель:

class Camp < ApplicationRecord 
    def self.search(country, price, organiser, season) 
    where("country LIKE ? AND price < ? AND organiser LIKE ? AND season LIKE ?", country, price, organiser, season) 
    end 
end 

Контроллер:

def search 
    country = params[:country] 
    price = params[:price] 
    organiser = params[:organiser] 
    season = params[:season] 

    if country.blank? 
    country = '%' 
    end 

    if season.blank? 
    season = '%' 
    end 

    if organiser.blank? 
    organiser = '%' 
    end 

    @camps = Camp.search(country, price, organiser, season) 
end 

HTML:

<div class="col-md-4"> 
    <%= link_to image_tag("cardheader.png") %> 
</div> 

ответ

1

Вы можете использовать link_to как это,

<%= link_to your_method_path(:country => "spain") do %> 
    <%= image_tag('spain.png') %> 
<% end %> 

вы можете использовать динамическое изображение и название страны, перейти к методу

Вот ваш метод (с одного из приведенных ниже комментариев):

def search 
    country = params[:country].present? ? params[:country] : '%' 
    price = params[:price].present? ? params[:price] : '%' 
    organiser = params[:organiser].present? ? params[:organiser] : '%' 
    season = params[:season].present? ? params[:season] : '%' 

    @camps = Camp.search(country, price, organiser, season) 
end 

Here is the reference to it

+0

Thx для ваш ответ. Когда это делается, мой URL становится: [http: // localhost: 3000/camps? Country = spain], когда в идеале это должно быть что-то вроде [/ camps? Utf8 = ✓ & country = Spain & organizer = & season = & price = & commit = Search] Выполнение этого действия не дает никаких результатов. – Andy

+0

, так что вам нужны все остальные параметры при отправке? – Sravan

+0

Кажется, что это так. В качестве альтернативы я мог бы создать новый контроллер и новую функцию в модели с конкретными поисками в стране. – Andy

Смежные вопросы