Как создать объект ActiveModel в рельсах 3 - PullRequest
1 голос
/ 02 февраля 2012

У меня есть следующий класс модели на ActiveRecord.Как написать эквивалент ActiveModel для этого класса?

class Recommendation < ActiveRecord::Base
  def self.columns() @columns ||= []; end

  def self.column(name, sql_type = nil, default = nil, null = true)
    columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
  end

  column :from_email, :string
  column :to_email, :string
  column :article_id, :integer
  column :message, :text
  serialize :exception

  validates_format_of :from_email, :to_email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
  validates_length_of :message, :maximum => 500

  belongs_to :article
end

1 Ответ

0 голосов
/ 03 февраля 2012

Я предлагаю вам начать с простого класса, а затем начать добавлять модули ActiveModel. Скажем, начните с проверки.

http://api.rubyonrails.org/classes/ActiveModel/Validations.html

class Recommendation
  include ActiveModel::Validations

  attr_accessor :from_email, :to_email, :article_id, :message

  validates_format_of :from_email, :to_email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
  validates_length_of :message, :maximum => 500
end

Другие документы ActiveModel можно найти по адресу http://api.rubyonrails.org/

...