Istnieje strona kontaktowa, która oferuje wprowadzenie nazwy, telefonu, wiadomości e-mail i wiadomości, po czym wysyła wiadomość e-mail administratora. Nie ma powodu, aby przechowywać wiadomość w DB.Sprawdzanie poprawności tras z kontrolera
Pytanie. Jak:
Stosować Szyny walidacji w kontrolerze, w ogóle nie używając modelu lub
Stosować walidacji w modelu, ale bez żadnej relacji DB
UPD:
Model:
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
kontrolera:
def sendmessage
cpm = ContactPageMessage.new()
if cpm.valid?
@settings = Setting.first
if [email protected]
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
Myślę, że masz już klasę o tej samej nazwie "ContactPageMessage". to jest problem. –
Czy chcesz zapisać nazwę, telefon i adres e-mail w bazie danych, a tylko wiadomość musi zostać zatwierdzona i nie zapisana w bazie danych? – user2801
@ Sumi, nie chcę być niczym zapisanym w DB. Właśnie zatwierdzono. – Roman