0

У меня есть две таблицы в моей базе данных. Eu tenho duas tabelas no banco de dados. 1º test_case_statuses 2º test_case_runsКак сортировать столбец с помощью файла перевода

Первая таблица имеет столбцы: идентификатор и идентификатор. Содержание этой таблицы заключается в следующем: идентификатора ID 1 нового
2 одобрены 3 обличаемых

Вторая таблица имеет столбцы идентификатор электронной status_id.

Мое приложение представлено на португальском языке, поэтому я использую файл перевода. Этот файл содержит следующие строки:

labels 
    ... 
    test_cases_statuses: 
    new: "Novo" 
    approved: "Aprovado" 
    reproved: "Reprovado" 
... 

Проблема заключается в том, что мне нужно, чтобы отсортировать содержимое таблицы в алфавитном порядке. Для других столбцов, я использую следующий код:

вид/test_plan_cases

... 

<%= sortable_th @search, :test_case_number, {}, :remote => true %> 
... 

приложение/хелперы/

def sortable_th(builder = nil, attribute = nil, *args) 

# th_classes = ['green'] 
th_classes = [] 
content = nil 

unless builder.nil? || attribute.nil? 
    th_classes << 'header' 
    content = sort_link(builder, attribute, *args) 

    if content.include? 'sort_link asc' 
    th_classes << 'headerSortDown' 
    elsif content.include? 'sort_link desc' 
    th_classes << 'headerSortUp' 
    end 
end 

th_classes = th_classes.join(' ') 
content_tag :th, content, class: th_classes 
end 



def sortable_teste(builder = nil, attribute = nil, *args) 
# th_classes = ['green'] 
th_classes = [] 
content = nil 

unless builder.nil? || attribute.nil? 
    th_classes << 'header' 
    content = sort_teste(builder, attribute, *args) 

    if content.include? 'sort_teste asc' 
    th_classes << 'headerSortDown' 
    elsif content.include? 'sort_teste desc' 
    th_classes << 'headerSortUp' 
    end 
end 

th_classes = th_classes.join(' ') 
content_tag :th, content, class: th_classes 

end 

контроллер/test_case_runs_controller

@search = @project.test_plan_cases.allowed_for(@release, current_user).search search_values 

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

[1 'Novo',

2 'Aprovado',

3'Reprovado ']

После того, что я теряю себя, должен создать другую форму заказа или хотели бы адаптировать вышеуказанный код? Я ценю любую помощь =]

ответ

0

Одним из способов было бы присвоить сортировку по жизненному полю, вычисленному с помощью SQL. Вы должны построить свое определение поля таким образом:

CASE status_id 
WHEN 1 THEN ‘Novo′ 
WHEN 2 THEN ‘Aprovado′ 
WHEN 3 THEN ‘Reprovado′ 
END 

Вы можете использовать это в качестве пункта заказа:

@search = @project.test_plan_cases.some_other_scope.order("#{case_above} ASC") 

и подобные запросы.

+0

Спасибо за ответ быстрой о/Я пытался использовать это, но он не работает, будет оставаться так: '@search = @ project.test_plan_cases.allowed_for (@release, current_user) .search.order ( «# { ПРИМЕР status_id КОГДА 1 ТОГДА 'Ново' КОГДА 2 ТОГДА 'Aprovado' КОГДА 3 ТОГДА '' Reprovado END}» ) search_values'? –

+0

Я полагаю, что 'search_values' является аргументом метода' .search() ', поэтому вы должны поместить его в нужное место. ** НО, если поиск не идет в базу данных (например, вы используете поисковый сервер), сортировка не поможет.Вам нужно будет добавить переведенное поле в индекс поиска, чтобы сервер поиска вернул уже отсортированные совпадения. – rewritten

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

  • Нет связанных вопросов^_^