如何在rails中访问YML文件

时间:2016-08-20 12:38:45

标签: ruby-on-rails yaml enumerize

我在配置文件夹中设置了一个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中的列表传递给枚举。

2 个答案:

答案 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的宝石,你可以毫不费力地加上你可以为你的应用添加多环境设置。