2012-02-02 3 views
1

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

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 
+0

Почему? Является ли «Рекомендация» не поддерживаемой базой данных? –

+0

Его просто временный объект. Я уничтожаю объект, как только ожидаемая задача будет завершена. Я не хочу хранить эти данные в db. – Achaius

+0

вправо, 'ActiveModel' - хороший выбор для этого, так как вам не придется его уничтожать –

ответ

0

Предлагаю начать с простого класса, а затем начать добавлять модули 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/

Смежные вопросы