Writing sample data:
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:
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
More...
- 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
More...