2013-02-13 34 views
0

目前,我使用api-versions gem,它很好地创建了API路线,并在请求HEAD中包含版本信息。如何通知api版本的型号?

但是,有时模型需要知道正在使用的api版本。例如验证。假设用户名的存在需要在任何版本> = 2的情况下进行验证,但不是版本< 2.

在控制器层,通过解析出适当的请求HEAD很容易检索到api版本。但是,将该版本号传递给模型的最佳方式是什么?

回答

0

如何在模型类验证从控制器作用有条件

class SomeModel < ActiveRecord::Base 
    attr_accessor :api_version 
    validates_presence_of :username, :if => :api_version > 2 
    ... 

然后定义psudo属性,设置模型上的API_VERSION保存前等

@someModel = SomeModel.new(params[:some_model]) 
@someModel.api_version = <<extracted from HEAD>> 
@someModel.save! 
+0

这正是我也想过。很高兴有第二个意见。谢谢! – 2013-02-14 17:21:53