DEV Community

donnellycarroll
donnellycarroll

Posted on

Capstone notes

Writing sample data:

  • started with small amount from Study Buddy - need to follow "Contact Book - Our Very First Database" from AppDev1 section "custom rake tasks"

Association Accessors:

Direct Associations: belongs_to
In standard Rails applications, the default is opposite: belongs_to adds an automatic validation to foreign key columns enforcing the presence of a valid value unless you explicitly add the option optional: true.

So: if you decided to remove the null: false database constraint from any of your foreign key columns in the migration file (e.g., change t.references :recipient, null: false ... to t.references :recipient, null: true ...), then you should also add the optional: true option to the corresponding belongs_to association accessor.

So remember — if you’re ever in the situation of:

  • you’re trying to save a record
  • the save is failing
  • you’re doing the standard debugging technique of printing out zebra.errors.full_messages
  • you’re seeing an inexplicable validation error message saying that a foreign key column is blank
  • now you know where the validation is coming from: belongs_to adds it automatically
  • so figure out why you’re not providing a valid foreign key (usually it is because the parent object failed to save for its own validation reasons)

Direct associations: has_many
Each belongs_to, there should be an inverse has_many. Check to make sure you have all of these inverse 1-N associations.

attendee ~ fan
leaders = who a user is following

Top comments (0)