Best practice about empty belongs_to association

Solution 1:

Be careful with this in Rails 5...

#belongs_to is required by default

From now on every Rails application will have a new configuration option config.active_record.belongs_to_required_by_default = true, it will trigger a validation error when trying to save a model where belongs_to associations are not present.

config.active_record.belongs_to_required_by_default can be changed to false and with this keep old Rails behavior or we can disable this validation on each belongs_to definition, just passing an additional option optional: true as follows:

class Book < ActiveRecord::Base
  belongs_to :author, optional: true
end

from: https://sipsandbits.com/2015/09/21/whats-new-in-rails-5/#belongs_toisrequiredbydefault

Solution 2:

I think it is absolutely normal approach.

You can just leave house_id with null value in database for the models which don't belong to other.