Как проверить реляционную модель Rails 3? - PullRequest
0 голосов
/ 25 ноября 2010

Новичок в Rails и ActiveRecord, не уверен, как я могу применить валидацию через несколько уровней реляционной модели.Я искал все учебники, которые я могу найти, все проверки только в одной модели.

Как я могу проверить несколько реляционных моделей?

Скажем, у меня есть несколько моделей, одна модель называется field хранит другой тип атрибута в спортивной игре (например, итоговый счет, голы за, голы против и т. Д.) И другую модель value, которая хранит все фактические значения, такие как игровые очкив field

Таким образом, у меня будет 2 класса

class Field < ActiveRecord::Base
  has_many :value       
end
class Value < ActiveRecord::Base
 belongs_to :field
end

Как я могу проверить значение каждого атрибута в value модели, которая соответствуетэто field?

1 Ответ

2 голосов
/ 25 ноября 2010

В rails 3: вы можете создать файл в вашем каталоге lib ( убедиться, , что этот файл загружен вашим приложением) и поместить в класс с методом validate:

class HumanValidator < ActiveModel::Validator

  def validate(record)
    record.errors[:base] << "This person is dead" unless check(human)
  end

  private

    def check(record)
      (record.age < 200) && (record.age > 0)
    end

end

Во всех моделях, которые вы хотите проверить, вы вызываете проверку с помощью класса следующим образом:

# app/models/person.rb
class Customer < ActiveRecord::Base
  validates_with HumanValidator
end

Прочтите это, для проверки новизны в рельсах 3, soure текст ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...