我有太多的模型,并希望保持单独的验证和 rails中每个模型的关系文件。有什么方法可以保持它 用铁轨? 这样做有什么特别的好处吗?
答案 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
与模型的主类文件不同的文件。不难想象。但是无论放入不同的文件是多么容易,我都不会从代码清晰度的角度推荐它。