Я реализую простую веб-страницу RoR, которая собирает электронные письма от посетителей и сохраняет их как объекты.
Я использую его как мини-проект, чтобы попробовать RoR и BDD. Я могу думать о 3 особенностях для огурца:
1. Пользователь отправляет действительный адрес электронной почты
2. Пользователь отправляет существующий адрес электронной почты
3. Пользователь отправляет неверный адрес электронной почты
Мой вопрос, для сценариев 2 и 3, лучше ли обрабатывать это через контроллер? или как методы в классе? Возможно, что-то, что выдает ошибки, если экземпляр создается в sceanrio 2 или 3?
Реализация ниже, люблю слышать некоторые обзоры кода в дополнение к ответам на вопросы выше. Спасибо!
Модель:
class Contact < ActiveRecord::Base
attr_accessor :email
end
ВИД:
<h1>Welcome To My Experiment</h1>
<p>Find me in app/views/welcome/index.html.erb</p>
<%= flash[:notice] %>
<% form_for @contact, :url => {:action => "index"} do |f| %>
<%= f.label :email %><br />
<%= f.text_field :email %>
<%= submit_tag 'Submit' %>
<% end %>
CONTROLLER:
class WelcomeController < ApplicationController
def index
@contact = Contact.new
unless params[:contact].nil?
@contact = Contact.create!(params[:contact])
flash[:notice] = "Thank you for your interest, please check your mailbox for confirmation"
end
end
end