0

目前,我使用api-versionsgem 很好地创建 api 路由并在请求 HEAD 中包含版本信息。

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

在 Controller 层,通过解析出相应的请求 HEAD 很容易检索 api 版本。但是将该版本号传达给模型的最佳方式是什么?

4

1 回答 1

0

如何在模型类中定义一个伪属性,验证器有条件地执行

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

然后从控制器中,在保存等之前在模型上设置 api_version

@someModel = SomeModel.new(params[:some_model])
@someModel.api_version = <<extracted from HEAD>>
@someModel.save!
于 2013-02-13T23:18:01.110 回答