如何更改中两个项目的顺序。每个项目在ruby中

如何更改中两个项目的顺序。每个项目在ruby中,ruby,select,each,Ruby,Select,Each,我的.erb文件中有一个函数,其中包含以下内容: <%select id ="dropdown"> <option disabled selected value="select"> - select - </option> <% @variable.each do |x| %> <%= "<option value='#{x['code']}'>#{x['description']} </option&

我的.erb文件中有一个函数,其中包含以下内容:

<%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>

-选择-
但是我需要有两个项目(TUA和CRL)显示在顶部,其余的以alpha顺序显示(目前是),所以应该是这样

<%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>

-选择-

我该怎么做?我已经硬编码了它,我不想这样。

不确定@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
@变量=[]

@variable@variable是在控制器中定义的,它是一个Web服务返回调用。不幸的是,它不起作用。另外,我需要在erb文件中而不是控制器中进行修复。我还在想办法。为什么它不起作用呢?你描述得越多,就越容易帮你解决问题。为什么在.erb文件中需要它?最好的做法是在控制器中声明变量,并在页面中加载它们。