2012-02-02 6 views
1

ActiveRecord에서 다음 모델 클래스를 사용하고 있습니다. 이 클래스에 해당하는 ActiveModel을 작성하는 방법은 무엇입니까?레일에 ActiveModel 객체를 만드는 방법 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

이유에서 찾을 수 있습니까? 'Recommendation'은 데이터베이스를 뒷받침하지 않습니까? –

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