我对 Rails 3 中的自定义验证选项有些困惑,我希望有人能指出我可以帮助解决当前问题的资源方向。
我目前有 3 个型号,vehicle
, trim
和 model_year
.它们如下所示:
class Vehicle < ActiveRecord::Base
attr_accessible :make_id, :model_id, :trim_id, :model_year_id
belongs_to :trim
belongs_to :model_year
end
class ModelYear < ActiveRecord::Base
attr_accessible :value
has_many :model_year_trims
has_many :trims, :through => :model_year_trims
end
class Trim < ActiveRecord::Base
attr_accessible :value, :model_id
has_many :vehicles
has_many :model_year_trims
has_many :model_years, :through => :model_year_trims
end
我的查询是这样的 - 当我创建车辆时,如何确保选择的 model_year 对修剪有效(反之亦然)?
最佳答案
您可以使用自定义验证方法,如 here 所述:
class Vehicle < ActiveRecord::Base
validate :model_year_valid_for_trim
def model_year_valid_for_trim
if #some validation code for model year and trim
errors.add(:model_years, "some error")
end
end
end
关于ruby-on-rails - Rails 3 - 自定义验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11736786/