Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 是否可以对非';t是模型的一部分吗?_Ruby On Rails_Validation - Fatal编程技术网

Ruby on rails 是否可以对非';t是模型的一部分吗?

Ruby on rails 是否可以对非';t是模型的一部分吗?,ruby-on-rails,validation,Ruby On Rails,Validation,所以我有一份登记表,其中一部分是账单/信用卡信息。这些信息都由第三方应用程序存储和处理,因此数据不会存储在我们的数据库中 那么,我如何通过Rails中的validates_uu方法运行这些项呢?(验证的存在,验证的长度等) 还是我在错误的地方对这些项目进行了验证?您可以创建一个虚拟模型来方便表单的信息。不需要将模型保存到数据库中 只需在app/models中创建一个新文件,就可以开始了 示例:app/models/ccinfo.rb class Ccinfo < ActiveRecord:

所以我有一份登记表,其中一部分是账单/信用卡信息。这些信息都由第三方应用程序存储和处理,因此数据不会存储在我们的数据库中

那么,我如何通过Rails中的validates_uu方法运行这些项呢?(
验证
的存在,
验证
的长度等)


还是我在错误的地方对这些项目进行了验证?

您可以创建一个虚拟模型来方便表单的信息。不需要将模型保存到数据库中

只需在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
类Ccinfo 如果表单基于另一个模型,您可以将上述模型的内部构件移动到表单所基于的模型中,以获得完全相同的效果


您可以通过调用valid?方法。如果有效,是否会像处理任何其他模型一样渲染错误?返回false。否则继续处理。

是的,我相信这是可能的

比如说

 class User < ActiveRecord::Base
     attr_accessor :card_number
     validates_presence_of :card_number
 end
class用户
您需要在模型本身中创建属性,然后对其应用验证

您还可以编写自己的访问器,像这样将数据发送给第三方

   class User < ActiveRecord::Base
   attr_accessor :card_number
   validates_presence_of :card_number

       def card_number=(number)
         .....
       end
   end
class用户
对于未来使用Rails3的读者,请签出ActiveModel:

require 'active_model'

class Place
  include ActiveModel::Validations
  validates_presence_of :name
  attr_accessor :name
end