我在配置文件夹中设置了一个settings.yml文件,其中包含一些列表元素,我希望在我的rails模型中传递给我的枚举:
uninitialized constant Hotel::Settings
我正在尝试通过我的酒店模型中的列表以这种方式进行枚举:
addCircleView(circle, isForeground: false, duration: 0.0, fromValue: 0.5, toValue: 1.0)
但我得到了func addCircleView( myView : UIView, isForeground : Bool, duration : NSTimeInterval, fromValue: CGFloat, toValue : CGFloat ) -> CircleView {
let circleWidth = CGFloat(280)
let circleHeight = circleWidth
// Create a new CircleView
let circleView = CircleView(frame: CGRectMake(0, 0, circleWidth, circleHeight))
//Setting the color.
if (isForeground == true) {
circleView.setStrokeColor((UIColor(hexString: "#ffefdb")?.CGColor)!)
} else {
// circleLayer.strokeColor = UIColor.grayColor().CGColor
//Chose to use hexes because it's much easier.
circleView.setStrokeColor((UIColor(hexString: "#51acbc")?.CGColor)!)
}
myView.addSubview(circleView)
//Rotate the circle so it starts from the top.
circleView.transform = CGAffineTransformMakeRotation(-1.56)
// Animate the drawing of the circle
circleView.animateCircleTo(duration, fromValue: fromValue, toValue: toValue)
return circleView
}
如何将YML中的列表传递给枚举。
答案 0 :(得分:1)
在config / initialize中设置初始值设定项,可能是load_settings.rb
require 'yaml'
settings = YAML.load_file(Rails.root.join('config', 'settings.yml')
EnumerizedValues = OpenStruct(settings['enumerize'])
然后你可以做
enumerize :status in: EnumerizedValues.hotel_status
答案 1 :(得分:0)
有一个名为config的宝石,你可以毫不费力地加上你可以为你的应用添加多环境设置。