Today I Learned

A Hashrocket project

๐Ÿ”‘ Set foreign keys to null

Sometimes, in certain circumstances, it is reasonable to have a foreign key value of null.

ActiveRecordโ€™s .has_many method has an argument to set the foreign key column on referencing rows to null when that record is deleted.

dependent: :nullify

Example:

class Post < ApplicationRecord
  belongs_to :author
  belongs_to :category
end

class Category < ApplicationRecord
  has_many :posts, dependent: :nullify
end

In this example whenever a category is deleted, any posts referencing the categories table will have their foreign key set to null.

*References: http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html#method-i-has_many-label-Options

Looking for help? Hashrocket has been an industry leader in Ruby on Rails since 2008. Rails is a core skill for each developer at Hashrocket and we'd love to take a look at your project. Contact us and find out how we can help you.