加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Ruby on Rails,使用同名枚举的问题

发布时间:2020-12-17 03:42:27 所属栏目:百科 来源:网络整理
导读:以下是我视图中的一些下拉菜单: div class="col-xs-3" %= f.select(:require_booking,get_advance_booking.collect {|p| [ p[:require_booking],p[:require_booking] ] },{include_blank: false},:class = 'form-control') %/div 和 div class="col-xs-3" %
以下是我视图中的一些下拉菜单:

<div class="col-xs-3">
    <%= f.select(:require_booking,get_advance_booking.collect {|p| [ p[:require_booking],p[:require_booking] ] },{include_blank: false},:class => 'form-control') %>
</div>

<div class="col-xs-3">
    <%= f.select(:instant_booking,get_instant_booking.collect {|p| [ p[:instant_booking],p[:instant_booking] ] },:class => 'form-control') %>
</div>

这是我的application_helper.rb

def get_advance_booking
    ret = [{:require_booking => 'No'},{:require_booking => 'Yes'}]
  end

 def get_instant_booking
    ret = [{:instant_booking => 'No'},{:instant_booking => 'Yes'}]
  end

但现在的问题是,在我的模型product.rb中,我无法使用相同的名称设置枚举:

class Product < ActiveRecord::Base
    enum require_booking: {
        No: 0,Yes: 1
    }
    enum instant_booking: {
        No: 0,Yes: 1
    }
end

我收到的错误是您尝试在模型“Product”上定义名为“instant_booking”的枚举,但这会生成一个实例方法“No?”,该方法已由另一个枚举定义.如何解决这样的冲突?

解决方法

首先,就像Marek Lipka所说,你应该使用布尔值来处理你的情况.

如果你需要定义具有相同条目的不同枚举,我建议使用gem’enumerize'(https://github.com/brainspec/enumerize).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读