witam
mam model z pewnego tutoriala, do formularza kontaktowego. model nie ma tabeli ale działają walidacje, problem jest taki ze cześć błędu walidacji jest tłumaczona a atrybut nie, czyli np
dostaje błąd ‘Subject nie może być puste’
def initialize(attributes = {})
attributes.each do |key, value|
self.send("#{key}=", value)
end @attributes = attributes
end
def read_attribute_for_validation(key) @attributes[key]
end
def to_key
end
def save
if self.valid?
ContactMailer.contact_email(self).deliver
return true
end
return false
end
end[/code]
Dodam że ustawienie tych atrybutów w localach w acitverecord.attributes.contact czy activerecord.errors.model.contact nie pomaga. Za to formtastic łapie ustawione locale w formtastic.labels.contact i ustawia prawidło etykiety w formularzu
Przykładowy prosty model, który zachowuje się już bardzo podobnie do ActiveRecord::Base bez bazy (choć trochę mu jeszcze brakuje ale to może temat na inną prezentację):
Tutaj są linki, gdybyś chciał dowiedzieć się trochę wiecej o ActiveModel:
include ActiveModel::Validations
include ActiveModel::Translation
include ActiveModel::Conversion
extend ActiveModel::Naming
extend ActiveModel::Translation[/code]
i dalej to samo
A z zupełnie innej beczki. O ile to co napisałeś było fajne by poćwiczyć sobie activemodel to w prawdziej aplikacji nie stoi za tym żadna korzyść by tych danych nie zapisać na bazie i ja bym to po prostu oparł o ActiveRecord::Base. Chociażby po to by można klientowi zrobić SQL który mu powie: Jak często zwykle osoby próbują się z nami skontaktować w ciągu miesiąca Takie życiowe, prozaiczne powody.