Ruby on Rails - has_one in ruby on rails- ruby on rails tutorial - rails guides - rails tutorial - ruby rails
A has_one association sets up a one-to-one connection with another model, but with different semantics. This association indicates that each instance of a model contains or possesses one instance of another model.
Example
Each user in our application has only one account, We'd declare the user model like this:
In Active Record, when we have a has_one relation, active record assume the only one record exists with the foreign key.
Example
- In accounts table, there can only be one record with a particular user_id.
- If we try to associate one more account for the same user, it makes the previous entry's foreign key as null(making it orphan) and creates a new one automatically.
- It makes the previous entry null even if the save fails for the new entry to maintain consistency.