Ruby를 처음 접했고 C#과 비교할 때 혼란 스럽습니다. 내가 고민하는 현재의 일은 ActiveRecord::Base
을 확장하지만 메모리에 사용 된 데이터베이스에 저장되지 않은 모델을 나타내는 클래스가 있다는 것입니다. 이것의 목적은 ActiveRecord의 검증 기능을 사용할 수 있도록하는 것입니다.클래스의 빈 인스턴스를 만드는 방법은 무엇입니까?
모델
class NewsletterSignup < ActiveRecord::Base
attr_accessible :first_name, :last_name, :email, :zip
def self.columns()
@columns ||= [];
end
def self.column(name, sql_type = nil, default = nil, null = true)
columns << ActiveRecord::ConnectionAdapters::Column.new(name, default, sql_type, null)
end
def persisted?
false
end
column :first_name, :string
column :last_name, :string
column :email, :string
column :zip, :string
validates :first_name, :last_name, :email, :zip, :presence => true
validates :email, :format => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
validates :zip, :format => /^\d{5}$/
end
부분보기
<%= simple_form_for NewsletterSignup.new ... do |f| %>
<%= f.input :first_name, :label => "First Name:" %>
<%= f.input :last_name, :label => "Last Name:" %>
<%= f.input :email, :label => "Email:" %>
<%= f.input :zip, :label => "Zip:" %>
...
<% end %>
내가 유효성 검사가 작동하도록 폼에 빈 모델을 전달하려는.
ActiveModel :: MissingAttributeError 없는 속성 : :하지만이 날은 속성/값을 제공하지 않고
NewsletterSignup
를 인스턴스화하는 동안 오류 제공 내가 여기 실종 무엇
FIRST_NAME?
어떤 레일 버전을 사용하고 있습니까? – depa