为rails中的每个模型分别验证文件

时间:2010-06-10 13:37:39

标签: ruby-on-rails ruby

我有太多的模型,并希望保持单独的验证和 rails中每个模型的关系文件。有什么方法可以保持它 用铁轨? 这样做有什么特别的好处吗?

1 个答案:

答案 0 :(得分:1)

你的问题不明确。 “模型”是指使用ActiveRecord的数据库支持的模型,对吧?

通常验证不是“文件”,而是模型文件中的一系列语句。关系声明也是如此。

您可以在任意数量的文件中拆分模型的内容。该技术取决于您是否希望其他文件包含实例方法或类方法。

最简单的方法是在其他文件中使用实例方法。例如

# file foo.rb
class Foo < ActiveRecord::Base
  include FooMethods

  # --- callbacks --- #
  before_create :record_signup # "before_create" is a "callback".
  # See http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html
  # note that the method could also be from a different class altogether:
  before_save      EncryptionWrapper.new
  # See section "Types of callbacks" in the api url referred to above

  # --- relationships --- #
  belongs_to :foobar
  has_many   :bars

  # --- Class Methods --- #
  def Foo.a_method_name(id)
    ...
  end
end

~~~~~~~~~~~~~~~~~~~~~~~~~~~

# file foo_methods.rb

module FooMethods

  def method1
    ...
  end

  def method2
   ...
  end

  private

  def record_signup # define the callback method
    self.signed_up_on = Date.today
  end
end

副手,我不知道如何设置回调覆盖

  

before_create

与模型的主类文件不同的文件。不难想象。但是无论放入不同的文件是多么容易,我都不会从代码清晰度的角度推荐它。