Когда я отправляю неправильное письмо, проверка не может пройти, но сообщения об ошибках в представлениях не отображаются: (
У меня в моделях:
validate :recipient_not_have_invitation, :notice => "That user have already invitation"
def recipient_not_have_invitation
errors.add :notice, 'That user have already invitation' if InvitationToGroup.find_by_recipient_email_and_group_id(recipient_email, group_id)
end
в контроллере:
(...)
if @invitation_to_group.save
Mailer.invitation_to_group(@invitation_to_group).deliver
redirect_to root_url, :notice => "Successfully send invitation to user #{@invitation_to_group.recipient_email}"
else
redirect_to new_invitation_to_group_path(:group_id => @invitation_to_group.group_id)
end
В представлениях (приглашение_группы / new.html.erb)
<h2>New Invitation to group </h2>
<% if notice %>
<p id="notice"><%= notice %></p>
<% end %>
<%= form_for @invitation_to_group do |f| %>
<% if @invitation_to_group.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@invitation_to_group.errors.count, "error") %> prohibited this user from being invitation:</h2>
<ul>
<% @invitation_to_group.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
(...)