Ruby on rails 如何按自定义顺序显示“搜索”复选框
我正在构建一个rails作业应用程序并使用ransack gem。在创建职务公告时,用户可以从集合中选择职务类型。 这就是代码Ruby on rails 如何按自定义顺序显示“搜索”复选框,ruby-on-rails,ruby,ruby-on-rails-4,simple-form,ransack,Ruby On Rails,Ruby,Ruby On Rails 4,Simple Form,Ransack,我正在构建一个rails作业应用程序并使用ransack gem。在创建职务公告时,用户可以从集合中选择职务类型。 这就是代码 <%= f.input :role, collection: ["Fullstack Developer", "Backend Developer", "Frontend Developer", "Engineer", "IOS Developer", "Android Developer", "Designer", "Business Developer
<%= f.input :role, collection: ["Fullstack Developer", "Backend
Developer", "Frontend Developer", "Engineer", "IOS Developer",
"Android Developer", "Designer", "Business Developer"], :label =>
"Role" %>
“角色”%>
在我的作业索引中,我使用ransack显示此集合。代码如下
<div class="filter-style">
<h4>Roles</h4>
<% new_roles = [] %>
<%= search_form_for @search, :class => 'filters_click' do |f| %>
<% @jobs.each do |job| %>
<% if job.role? %>
<% new_roles << job.role %>
<% end %>
<% end %>
<% new_roles.uniq.each do |new_role| %>
<div class="styled-input-container">
<a>
<label>
<%= check_box_tag('q[role_eq_any][]', new_role) %>
<%= new_role %>
</label>
</a>
</div>
<% end %>
<% end %>
</div>
角色
'过滤器|单击'do | f |%>
我现在能想到的最好的方法是做以下事情
首先创建一个变量,其顺序与您希望数组的顺序相同
<% role_order = [
"Fullstack Developer", "Backend Developer", "Fronten Developer",
"Engineer", "IOS Developer", "Android Developer",
"Designer", "Business Developer"
] %>
或者,您可以为作业角色创建模型并添加订单属性。而不是按该属性获取实例顺序
<% new_roles = Role.where(id: @jobs.select(:role_id)).order(:order_attr) %>
<% new_roles = role_order & new_roles %>
<% new_roles2 = role_order & new_roles %>
<% raise 'Missing roles in role_order array!' unless new_roles.size == new_roles2.size %>
<% new_roles = Role.where(id: @jobs.select(:role_id)).order(:order_attr) %>