Hy。我是Ruby on Rails和OOP的新手。
我就有點調度工作,要幹我的模型方法。
我衝過一些關於Rails中Module和Class的用法,但是找不到什麼是最好的方法。
difference-between-a-class-and-a-module
ruby-class-module-mixins如何在Ruby on Rails中按模塊或類DRY重複的模型方法?
實施例:
假設我有2個模型(基準和人)。
每個模型都有一個屬性,該屬性存儲日期,但具有不同的屬性名稱。
我寫了兩個模塊的日期驗證的方法相同。
我的模型:
class Datum < ActiveRecord::Base
attr :start_date
def validate_date
# same validation stuff with self.start_at
end
end
class Person < ActiveRecord::Base
attr :birth_date
def validate_date
# same validation stuff with self.birth_date
end
end
這是我嘗試用一個lib/ModelHelper和基準型號:
class Datum < ActiveRecord::Base
include ModelHelper
attr_accessible :start_at
# Validations
before_validation :validate_date, :start_at
end
module ModelHelper
private
def validate_date *var
# validation stuff with birth_date and start_at
end
end
問:
在我的情況,我想我需要指定一個參數(對於每個模型屬性:start_at和:bith_date)。
但我無法發現如何。
什麼是幹我的模型,以模塊或類的最佳方式?
爲什麼和怎麼樣?
我強烈建議你檢查出codereview.stackexchange.com – Anthony 2014-12-05 14:23:31
順便說一句,我最近發表回答CodeReview.SE關於自定義Rails 4驗證器:http://codereview.stackexchange.com/questions/71435/reservation-validation/71496#71496 – 2014-12-05 14:25:53
@Anthony我的問題不僅僅是代碼審查。 更多關於理解Ruby on Rails中的Module和Class的內容,同時給出一個示例。 – stephanfriedrich 2014-12-05 15:11:20