1
0
mirror of https://github.com/jbranchaud/til synced 2026-01-03 15:18:01 +00:00
Files
til/rails/build-a-hash-of-model-attributes.md
2019-11-07 14:48:50 -06:00

35 lines
792 B
Markdown

# Build A Hash Of Model Attributes
Have you ever found yourself creating an `ActiveRecord` object with
[FactoryBot](https://github.com/thoughtbot/factory_bot) with the sole purpose
of turning it into a hash of attributes?
```ruby
> FactoryBot.build(:book).attributes
{ "id"=>nil, "title"=>"Fledgling", "genre"=>"fiction" }
```
FactoryBot has a built-in method for doing this:
```ruby
> FactoryBot.attributes_for(:book)
{ title: "Fledgling", genre: "fiction" }
```
It also accepts any traits for that factory:
```ruby
> FactoryBot.attributes_for(:book, :published)
{
title: "Fledgling",
genre: "fiction",
publication_year: 2005,
page_count: 362
}
```
This is a handy way of build a base set of attributes when testing an API
endpoint.
[source](https://devhints.io/factory_bot)