Обеспечение существования хотя бы одной связанной записи - PullRequest
1 голос
/ 15 февраля 2011

Есть ли лучший способ убедиться, что я не удаляю последнюю запись отношения?Я чувствую, что это должно быть сделано с помощью проверки, но не может заставить это остановить действие уничтожения.

FYI - @organization присутствует, потому что вложенные маршруты

class LocationsController < ApplicationController
....
....
  def destroy
    @organization = Organization.find(params[:organization_id])
    @location = @organization.locations.find(params[:id])
    count = Location.find_all_by_organization_id(@location.organization_id).count
    if count > 1
      @location.destroy
      flash[:notice] = "Successfully destroyed location."
      redirect_to @organization
    else
      flash[:notice] = "Could not destroy the only location."
      redirect_to @organization
    end     
  end
end

1 Ответ

0 голосов
/ 15 февраля 2011

Вы могли бы также рассмотреть обратный вызов before_destroy (хотя я не думаю, что ваша версия настолько плоха):

http://edgeguides.rubyonrails.org/active_record_validations_callbacks.html#destroying-an-object

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...