Search code examples
ruby-on-railsruby-on-rails-4activerecord

Rails has_one / has_many, dependent option: What values are available?


I get the following error in Rails 4:

dependent option must be one of destroy delete

Per https://github.com/rails/rails/issues/3458, other options were supported in older versions. But what is possible nowadays? I could not find any other documentation.


Solution

  • Docs are available here

    Looks like the following options are supported:

    • nil - do nothing (default).

    • :destroy - causes all the associated objects to also be destroyed.

    • :delete_all - causes all the associated objects to be deleted directly from the database (so callbacks will not be executed).

    • :nullify - causes the foreign keys to be set to NULL. Callbacks are not executed.

    • :restrict_with_exception - causes an exception to be raised if there are any associated records.

    • :restrict_with_error - causes an error to be added to the owner if there are any associated objects.