ruby-on-rails - Rails 3 - 自定义验证

标签 ruby-on-rails ruby-on-rails-3 activerecord

我对 Rails 3 中的自定义验证选项有些困惑,我希望有人能指出我可以帮助解决当前问题的资源方向。

我目前有 3 个型号,vehicle , trimmodel_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/

相关文章:

python - BlazeDS Livecycle Data Services 有什么作用,而 PyAMF 或 RubyAMF 之类的东西不能做什么?

css - 如何在 CSS 文件中从 Ruby 插入值

ruby-on-rails - RVM 的 SQLite3 问题

ruby-on-rails-3 - 可安装引擎的脚手架生成的功能测试在命名路线上失败

ruby-on-rails - google_drive gem 不工作 "LoadError: cannot load such file -- google_drive"

ruby-on-rails - link_to 删除 url 不起作用

sql - Rails with postgres - activerecord 查询 : sort by column ASC, 然后按列分组

ruby-on-rails - rails : ActiveRecord query based on association value

ruby - Rails 4 命名范围,记录总是在末尾

ruby-on-rails - 找不到 id=#<ActiveRecord::Relation::ActiveRecord_Relation_User:0x2eb9b58> 的用户