枚举过滤器上的Ransack下拉列表

时间:2019-01-27 23:38:19

标签: ruby ruby-on-rails-3 ruby-on-rails-4 ransack

class Schedule < ApplicationRecord 
  belongs_to :event
  enum county: {USA: 0, INDIA: 1, Brasil: 2}
end
在index.erb.html中选择

随机选择

<%= f.collection_select :schedules_county_matches_all, Schedule.counties.map{ |dp| [dp.first, dp.first.humanize] }, :first.to_s, :second ,:include_blank => "All"%>

给出输出选择下拉列表,但不提供值(在Postgres数据库中),该值存储为整数而不是字符串

<li class=""><span>All</span></li>
<li class=""><span>USA</span></li>
.......

作为工作过滤器,我认为应该在li中增加价值

<li value=""><span>All</span></li>
<li value="0"><span>USA</span></li>
.......

2 个答案:

答案 0 :(得分:1)

使用下面的代码解决您的问题

 attr = 'username'
 User.find({ [attr]: val }, function (err, user) {
    if (err) {
        console.log(err);
    }
 })

答案 1 :(得分:0)

创建您的抢劫犯。

  # user.rb
  enum role: [:Admin, :Analyst]
  ransacker :role, formatter: proc {|v| roles[v]} do |parent|
    parent.table[:role]
  end

然后将字段添加到index.html.erb

<%= f.select :role_eq, User.roles.keys , {:include_blank => 'All Roles'}, { :class => 'form-control' } %>