所以我有一个注册表格,其中一部分是账单/信用卡信息。该信息全部由第三方应用程序存储和处理,因此数据不会存储在我们的数据库中。
那么我怎样才能通过Rails中的validates_方法运行这些项目? (validates_presence_of
,validates_length_of
等等)
或者我是否会在这些项目的错误位置进行验证?
答案 0 :(得分:1)
对于使用Rails3的未来读者,请检查ActiveModel:
require 'active_model'
class Place
include ActiveModel::Validations
validates_presence_of :name
attr_accessor :name
end
答案 1 :(得分:0)
您可以创建虚拟模型以方便表单的信息。无需将模型保存到数据库。
只需在app / models中创建一个新文件,你就可以了。
示例:app / models / ccinfo.rb
class Ccinfo < ActiveRecord::Base
attr_accessor :card_type, :card_number, :pin, :exp_month, :exp_date, :card_holder, ...
validates_presence_of :card_holder
...
end
如果表单基于另一个模型,您可以将上述模型的内部移动到模型表单中,基于完全相同的效果。
您可以通过调用有效身份验证而不保存吗?方法。如果有效,可以像使用任何其他模型一样渲染错误吗?返回false。否则继续处理。
答案 2 :(得分:0)
是的,我相信可以这样做
例如
class User < ActiveRecord::Base
attr_accessor :card_number
validates_presence_of :card_number
end
您需要在模型中创建属性,然后将验证应用于该属性。
您也可以编写自己的访问者,将数据发送给第三方,如
class User < ActiveRecord::Base
attr_accessor :card_number
validates_presence_of :card_number
def card_number=(number)
.....
end
end