2017-02-20 6 views
1

У меня есть функция в моем .erb файла и в нем у меня есть следующий:Как изменить порядок для двух элементов в .each рубин

<%select id ="dropdown"> 
<option disabled selected value="select"> - select - </option> 
<% @variable.each do |x| %> 
<%= "<option value='#{x['code']}'>#{x['description']}   </option>".html_safe %> 
<% end %> 
<%/select> 

Но мне нужно иметь два элемента (ТУО и CRL), который будет отображаться вверху, а остальные будут отображаться в альфа-порядке (который в настоящее время), поэтому он должен быть.

<%select id ="dropdown"> 
<option disabled selected value="select"> - select - </option> 
<% @variable.each do |x| %> 
<% next if x['code'] == 'TUA' or x['code'] == 'CRL' %> 
<%= "<option value='#{x['code']}'>#{x['description']}   </option>".html_safe %> 
<% end %> 
<%/select> 

Как я могу это сделать? Я его жестко закодировал, и я не хочу этого.

ответ

1

Не знаете, как объявляется @variable, но что, если вы попытаетесь организовать его в контроллере?

@variable = [] 
@variable << Variable.find_by(code: 'TUA') 
@variable << Variable.find_by(code: 'CRL') 

@variables = Variable.all.order('code DESC') 
@variables.each do |x| 
    if x.code != 'TUA' && x.code!= 'CRL' 
    @variable << x 
    end 
end 
+0

@variable определяется в контроллере и является обратным вызовом веб-службы. – Remon87

+0

@ Remon87 работает ли выше? – gwalshington

+0

К сожалению, это не сработало. Также мне нужно иметь исправление в файле erb, а не в контроллере. Я все еще пытаюсь понять это. – Remon87

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