Il existe une page de contact, qui permet de saisir le nom, le téléphone, l'adresse électronique et le message, après quoi le message est envoyé à l'adresse électronique d'un administrateur. Il n'y a aucune raison de stocker le message dans la base de données.
Question. Comment faire ?
-
Utiliser les validations Rails dans le contrôleur, sans utiliser le modèle, OU
-
Utiliser les validations dans le modèle, mais sans relations avec la base de données
UPD :
Modèle :
class ContactPageMessage
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :telephone, :email, :message
validates :name, :telephone, :email, :message, presence: true
validates :email, email_format: { :message => " E-mail "}
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
contrôleur :
def sendmessage
cpm = ContactPageMessage.new()
if cpm.valid?
@settings = Setting.first
if !@settings
redirect_to contacts_path, :alert => "Fail"
end
if ContactPageMessage.received(params).deliver
redirect_to contacts_path, :notice => "Success"
else
redirect_to contacts_path, :alert => "Fail"
end
else
redirect_to contacts_path, :alert => "Fail"
end
end
end