2012-06-04 5 views
0

У меня есть 2 таблицы в моей БД - таблица «болезни» и таблица «симптомы». Я реализовал общий поиск для поиска в обеих таблицах. Моя цель - отображать результаты на странице результатов, каждый результат должен быть гиперссылкой, которая ведет к странице результатов «показать» (болезнь/id/show или symom/id/show).ruby ​​on rails реализовать общий поиск

Поскольку я передаю общие результаты на страницу результатов, я действительно не знаю, является ли текущий результат болезнью или симптомом. Интересно, какой лучший способ получить эту информацию (Должен ли я попытаться собрать эту информацию в контроллере и как-то передать ее в html? Должен ли я каким-то образом запустить другой запрос из html?)

Я использую рельсы 3.x, и мой код контроллера выглядит следующим образом:

class SearchController < ApplicationController 
    def index 
     @results = Illness.search(params[:search]) + Symptom.search(params[:search]) 

     respond_to do |format| 
      format.html # index.html.erb 
      format.json { render json: @results } 
     end 
    end 
end 

Спасибо, Li

ответ

2

Вам не придется беспокоиться об этом. Пусть Rails обслуживают его:

- @results.each do |result| 
    = link_to 'Show', result 

И вы получите правильную ссылку на основе типа результата.

И еще один. Что в URL-адресе show имеет отношение к showдействию в ваших примерах: symptom/id/show? Действие show отображается по умолчанию на путь GET /model/id.

+0

ничего себе. Благодарю. На этом языке так много учиться. и спасибо за комментарий относительно ссылок. – user429400

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