我正在使用Rails 4.1构建API。我的一个调用需要2个输入字段,并调用第三方API以获取更多数据。然后,它使用该数据制作ActiveRecord模型。
我应该如何验证输入?我没有从2个输入字段中创建模型。
注意:在调用第三方API之前需要对它们进行验证
答案 0 :(得分:2)
根据您撰写的内容,我会说您要查看attr_accessor
并使用ActiveRecord
来验证您的表单数据:
#app/models/model.rb
Class Model < ActiveRecord::Base
attr_accessor :your, :inputs
validates :your, :inputs, presence: true
end
这将创建virtual attributes
,然后您可以使用标准ActiveRecord
validation功能进行验证。我相信,由于您的模型通常会为您的数据表属性创建实例方法,因此您可以使用attr_accessor
属性实现相同的功能
正如@Mohammed
所述,您可以通过使用您的数据创建instance
模型来验证输入:
#app/controllers/your_controller.rb
Class Controller < ApplicationController
def create
@model = Model.new(input_params)
@model.valid?
end
private
def input_params
params.require(:model).permit(:your, :inputs)
end
end
答案 1 :(得分:1)
答案 2 :(得分:0)
这些输入是否会被用作模型中的属性?如果是这样,为什么不初始化一个新对象并测试其有效性?
def new
foo = Foo.new(inputs)
foo.valid?
end
否则,您可以使用扩展ActiveModel::Model
模块的普通旧PORO来模仿AR模型(验证等)。您可以在此处找到更多详细信息:http://blog.remarkablelabs.com/2012/12/activemodel-model-rails-4-countdown-to-2013