У меня есть модель под названием департамент, в которой много пользователей.
Я создал метод before_destroy, чтобы проверить, есть ли у отдела пользователи, связанные с ним, в этом случае его не следует удалять.
class Department < ActiveRecord::Base
before_destroy :without_users
has_many :users, :dependent => :destroy
def without_users
if self.users.size() > 0
self.errors.add :base, "The department cannot be deleted because it has users associated to it"
end
self.errors.blank?
end
end
В моем индексном представлении у меня есть кнопка, которая уничтожает отдел.
<%= link_to image_tag("remove.png", :border => 0, :title => 'Delete'), department, confirm: 'Are you sure that you want to delete?', method: :delete, :class=>"actions_table" %>
И в моем контроллере это мое действие уничтожения:
def destroy
@department = Department.find(params[:id])
@department.destroy
respond_to do |format|
format.html { redirect_to departments_url }
format.json { head :ok }
end
end
Как Rails отображает сообщение об ошибке в представлении индекса?
Спасибо!