Week 8, day 3

Second day of Rails started off well, became a gruelling challenge and then ended well with some improved understanding! I feel like I'm going to encounter something that makes me hate it but for now I quite like it.

One of the main downsides is having to do things 'The Rails Way', and a side-effect of the fact that it handles a lot of the setup for you is bloated file structures.

Join me after the break for my file tree, if you know Rails you know what' coming...

.
├── Gemfile
├── Gemfile.lock
├── README.md
├── README.rdoc
├── Rakefile
├── app
│   ├── assets
│   │   ├── images
│   │   ├── javascripts
│   │   │   ├── application.js
│   │   │   ├── restaurants.coffee
│   │   │   └── reviews.coffee
│   │   └── stylesheets
│   │       ├── application.css
│   │       ├── restaurants.scss
│   │       └── reviews.scss
│   ├── controllers
│   │   ├── application_controller.rb
│   │   ├── concerns
│   │   ├── restaurants_controller.rb
│   │   ├── reviews_controller.rb
│   │   ├── users
│   │   │   └── omniauth_callbacks_controller.rb
│   │   └── validators
│   │       └── ownership.rb
│   ├── helpers
│   │   ├── application_helper.rb
│   │   ├── restaurants_helper.rb
│   │   └── reviews_helper.rb
│   ├── mailers
│   ├── models
│   │   ├── concerns
│   │   ├── restaurant.rb
│   │   ├── review.rb
│   │   └── user.rb
│   └── views
│       ├── devise
│       │   ├── confirmations
│       │   │   └── new.html.erb
│       │   ├── mailer
│       │   │   ├── confirmation_instructions.html.erb
│       │   │   ├── reset_password_instructions.html.erb
│       │   │   └── unlock_instructions.html.erb
│       │   ├── passwords
│       │   │   ├── edit.html.erb
│       │   │   └── new.html.erb
│       │   ├── registrations
│       │   │   ├── edit.html.erb
│       │   │   └── new.html.erb
│       │   ├── sessions
│       │   │   └── new.html.erb
│       │   ├── shared
│       │   │   └── _links.html.erb
│       │   └── unlocks
│       │       └── new.html.erb
│       ├── layouts
│       │   └── application.html.erb
│       ├── restaurants
│       │   ├── edit.html.haml
│       │   ├── index.html.haml
│       │   ├── new.html.haml
│       │   └── show.html.haml
│       └── reviews
│           └── new.html.haml
├── bin
│   ├── bundle
│   ├── rails
│   ├── rake
│   ├── setup
│   └── spring
├── config
│   ├── application.rb
│   ├── boot.rb
│   ├── database.yml
│   ├── environment.rb
│   ├── environments
│   │   ├── development.rb
│   │   ├── production.rb
│   │   └── test.rb
│   ├── initializers
│   │   ├── assets.rb
│   │   ├── backtrace_silencers.rb
│   │   ├── cookies_serializer.rb
│   │   ├── devise.rb
│   │   ├── filter_parameter_logging.rb
│   │   ├── inflections.rb
│   │   ├── mime_types.rb
│   │   ├── session_store.rb
│   │   └── wrap_parameters.rb
│   ├── locales
│   │   ├── devise.en.yml
│   │   └── en.yml
│   ├── routes.rb
│   └── secrets.yml
├── config.ru
├── db
│   ├── migrate
│   │   ├── 20150505102707_create_restaurants.rb
│   │   ├── 20150505112914_add_description_to_restaurants.rb
│   │   ├── 20150505135618_create_reviews.rb
│   │   ├── 20150505142255_add_restaurant_id_to_reviews.rb
│   │   ├── 20150506075747_devise_create_users.rb
│   │   ├── 20150506092814_add_columns_to_users.rb
│   │   ├── 20150506142544_add_user_id_to_restaurants.rb
│   │   └── 20150506164806_add_user_id_to_reviews.rb
│   ├── schema.rb
│   └── seeds.rb
├── lib
│   ├── assets
│   └── tasks
├── log
│   ├── development.log
│   └── test.log
├── public
│   ├── 404.html
│   ├── 422.html
│   ├── 500.html
│   ├── favicon.ico
│   └── robots.txt
├── spec
│   ├── feature
│   │   ├── credentials_feature_spec.rb
│   │   ├── restaurants_feature_spec.rb
│   │   ├── reviews_feature_spec.rb
│   │   └── users_feature_spec.rb
│   ├── helpers
│   │   ├── restaurants.rb
│   │   ├── reviews.rb
│   │   └── users.rb
│   ├── models
│   │   ├── restaurant_spec.rb
│   │   └── review_spec.rb
│   ├── rails_helper.rb
│   └── spec_helper.rb
├── tmp
│   ├── cache
│   │   └── assets
│   │       ├── development
│   │       │   └── sprockets
│   │       │       └── v3.0
│   │       │           ├── -87td7OnwJt8BSkzH8z0WYTXDchcPEp0DbFS5dPFHWg.cache
│   │       │           ├── 1o4qnCj6oEQdv308wi-r2NBNVXQiv7T-_hLXlR9XLwQ.cache
│   │       │           ├── 51r_Jq_nnhLYXtq7sDFY5ZcabGwM73eCEM4o3K8PCCU.cache
│   │       │           ├── 5Iyi3it8jLtsAlgfycii1OLFT7p0MIGDm01QA7asJOY.cache
│   │       │           ├── 5N8BQu1BHBAoSMJvGJyXOSQl7n3JtU6jQDdT3MatCVU.cache
│   │       │           ├── 5dmuws_v2qHTMkDOcNtuEbdi-316Df3W48x09Qjuzpc.cache
│   │       │           ├── BBRsr_LRjD4QnS6gQisVJqXDbKQVE_mC8KZWICnw1xk.cache
│   │       │           ├── Bs6CoUikdzyRwvwWt2u9jV5B_T4b7XTC7CrOeQWzcIU.cache
│   │       │           ├── D5t7fIIA71r1jQwDolQRUsxbSjGKl5dyX7W3vGshjiw.cache
│   │       │           ├── E9-3uNmhSd8AgXSlKojQpYpJk_19y9GUBSyCi9oBTIA.cache
│   │       │           ├── Eq4qze5XdAMzKGFsS4H5GOntwvXPn0PoWIYdO7E6lZ8.cache
│   │       │           ├── GURReRPbhPWNTjCcyy1qfeExeTXqTnfkw2kshXfLJQU.cache
│   │       │           ├── I1Jw99tdF23Q9cdQk9faT4CXKdu__bUpv8A7l6kUjkI.cache
│   │       │           ├── Kkre7itNRys6GIXxHzGkev0bqK-OETmy81G8G0Hurug.cache
│   │       │           ├── LKQwGsxZDt2MW8buYico8k7_UvzCbPj4ZJDg7hnbQF0.cache
│   │       │           ├── M2xfgjqQLofp6JvznsGzzYftmbE5Exrzd4_hiiwved8.cache
│   │       │           ├── M46LJu_vV7q14O7V1TDaF3-CnMQ7dRHPlS8dArsjemc.cache
│   │       │           ├── MMjoNHhNVpP2e8rseR5UI9Va9EC2dT9yJ62NIzuK4Ak.cache
│   │       │           ├── N8DiMqPBSsCB3aAFRTUw04PrkEELkpXpXHbLNwEATCI.cache
│   │       │           ├── OY-Ap7nkhmfsj69jIVZQuFOTc5L3oyRYleezExR7b2Y.cache
│   │       │           ├── OrLM8D6M-TtzIMw93u7gWfwsw6_dNGzlbQ6N1xggIH4.cache
│   │       │           ├── RBLgpYNVcniuQSXG9imK70MFetBvH5ziQ0xQf9IAdnc.cache
│   │       │           ├── RU7ovdUNFYTcz-3fFlxfn6dlrlR6l5zyaA8pMUXYtdw.cache
│   │       │           ├── UNjxKUOYvVgkFdkywwnz9PkupHu6sAy7jTwm0I9wHEo.cache
│   │       │           ├── WdACZZ524TDAI9V7V8-bn3JgGDw3eIrm-9FmC1LEGJk.cache
│   │       │           ├── Y6lOHAinbapA1oDiOGFlEDjHzvaYcPxSJ0BIJvTgn80.cache
│   │       │           ├── YUa_5KBALpTiKZS4PlTQirWiBhFZDRtUxPncZvMuzZk.cache
│   │       │           ├── YV28Rd-myvBE0JaFc7DqX29Zx1ta9hpAU8-64UygZqo.cache
│   │       │           ├── Yq7Sv6Vwa0dk8POqysQoOwcKZX67KYZLp55kZIrNGqM.cache
│   │       │           ├── bitMw94_oLF2LVwrHkulsisNxK-t6KDiBOYaEXrwVtY.cache
│   │       │           ├── cF-F91Ykt7WAqCJHhyV_usBwf86yTEZzHmhWSHeYCoE.cache
│   │       │           ├── cPczelcnRZie499w64klouI6QnZzSEVGgfDJVM502Xg.cache
│   │       │           ├── d1kmeKp1NnZmEbiFsBe4IcN3O45G8-BVleRgH4m6fLI.cache
│   │       │           ├── fE8rYNAWPMjWG_u-uf9-AQrN1FQEZ6MdfxmJKcc7sGc.cache
│   │       │           ├── fdmuDgn44rcQWFDrFOW8NM7B9DQpolONZ-PoxjRByRk.cache
│   │       │           ├── gOktXoFeCLdHtq0rlZmW2rOiTLqVYnZQDUbOrKPO4xU.cache
│   │       │           ├── l8CBK1gxU-KsdlBbEqBWXvmx_xvPVOTEeGmgmif29ZY.cache
│   │       │           ├── mCijXMKaDw0nUj7tnzsZSMR37mQjUEG1wsqrvSQbjhY.cache
│   │       │           ├── mKQKN_P_8jYD-Q80hhjvo4e3LImaXAMIThYLqa9Apvw.cache
│   │       │           ├── phGfPYy6jD57esoKPEOa30eBAwIzHvQQqBN9IjkKIIw.cache
│   │       │           ├── q-hA47XqW-dtL50So2DPROQ6tgDvJhZ1UTdeFgDGFXY.cache
│   │       │           ├── q8jI5I-w_Fu6e_oW8XninPNWIWaVVEYSEQ7i9f4zJlw.cache
│   │       │           ├── qb3h7lIgYSQHqgdE_mjo7wz4NHXiVq3gjOsz9USaFHI.cache
│   │       │           ├── qbx1R14t2XZik7iZIQoEtoEG1hXu1DosQ-4rWh98HgY.cache
│   │       │           ├── r6ppUSJFdrxOGS30KS3jy-JBoox9yydCMo5niVVbNmM.cache
│   │       │           ├── tbaH8vE-kBZn4PCkjXPeZWj1EMJklBg3BfKBbnXtrmY.cache
│   │       │           ├── uWPvIAAMAh12uxQRMFAvHx_N9YD56HkymeknExBq2HY.cache
│   │       │           ├── vIYrto04h47_Hhwokye64lOOPgtEHm_Bb_-rGHQwf-4.cache
│   │       │           ├── w5flkPzgCei2qJkkh-ens0dnc9LXovK1EZaVVOIemiI.cache
│   │       │           ├── wOh5j_m0_ulFU5d_VFIxwlmlzNXMKhw0ZSipF8zTx_o.cache
│   │       │           ├── wbQaX1nyrVOQGAfzO3flWOLXR5LpQmgeSCDirrDp1kc.cache
│   │       │           ├── wbs4x4RELZyo7gNFOQr6kuzYLApgj_6ZySHb89r25Tc.cache
│   │       │           └── xJHSKAqZVp_TWMYQaifil-c3g_9cX6YW24-RMr4hbiI.cache
│   │       └── test
│   │           └── sprockets
│   │               └── v3.0
│   │                   ├── 0Gzk_IPjzib2cpR7s11wYyLHa7u3lzLqpe2l1_HHp2s.cache
│   │                   ├── 1WvsGjUEmeg3TtMKz256dfVcl7yGtR5g3_RdaG4-6RI.cache
│   │                   ├── 1o4qnCj6oEQdv308wi-r2NBNVXQiv7T-_hLXlR9XLwQ.cache
│   │                   ├── 58eXwCNvHgO0u9iKJzHQzfOSlKDeeHZhxG9hxRRJdtc.cache
│   │                   ├── 5Iyi3it8jLtsAlgfycii1OLFT7p0MIGDm01QA7asJOY.cache
│   │                   ├── 5N8BQu1BHBAoSMJvGJyXOSQl7n3JtU6jQDdT3MatCVU.cache
│   │                   ├── 5dmuws_v2qHTMkDOcNtuEbdi-316Df3W48x09Qjuzpc.cache
│   │                   ├── 7CRVGUcIO16Hdte_1poTnzI5YwOf2RR340a3SWXJN9M.cache
│   │                   ├── 7PCU86LiBge7B-IAoU1uZ4cSuazTRDhZsqvvwMSdVWA.cache
│   │                   ├── 8naRFS1V-STl6rTCib5ltCNj4V1ESEhm2RfLiXaqU-M.cache
│   │                   ├── D5t7fIIA71r1jQwDolQRUsxbSjGKl5dyX7W3vGshjiw.cache
│   │                   ├── Eq4qze5XdAMzKGFsS4H5GOntwvXPn0PoWIYdO7E6lZ8.cache
│   │                   ├── I1Jw99tdF23Q9cdQk9faT4CXKdu__bUpv8A7l6kUjkI.cache
│   │                   ├── IRouq8-_N2-ayRi4i6otKdfnVi00Bs_AlQT79eMpLB4.cache
│   │                   ├── K8J8CJWnJUX1_pmOcoig5UEdcmxDodjHI4AOfBGcj4s.cache
│   │                   ├── Kkre7itNRys6GIXxHzGkev0bqK-OETmy81G8G0Hurug.cache
│   │                   ├── L_UAW165cRZJvOHA0lbMPdyc-I6MQLdVVFuVOORx6C4.cache
│   │                   ├── M2xfgjqQLofp6JvznsGzzYftmbE5Exrzd4_hiiwved8.cache
│   │                   ├── M46LJu_vV7q14O7V1TDaF3-CnMQ7dRHPlS8dArsjemc.cache
│   │                   ├── N8DiMqPBSsCB3aAFRTUw04PrkEELkpXpXHbLNwEATCI.cache
│   │                   ├── NeQJgNaALwwUVDS82SSn6XnnGBcZMyR1NOtXg1zSBvw.cache
│   │                   ├── OrLM8D6M-TtzIMw93u7gWfwsw6_dNGzlbQ6N1xggIH4.cache
│   │                   ├── P-UrAWIn5uuLVlq8KgM4WFpo8oThPQd_SoYtaQ84l9Q.cache
│   │                   ├── RBLgpYNVcniuQSXG9imK70MFetBvH5ziQ0xQf9IAdnc.cache
│   │                   ├── V8d56U00d7tRSVajEqt_zqe-wpvS3tikN2oinhRigHw.cache
│   │                   ├── W7A3QZnRFBQ6XlmH8k8q4R-6Gpv7BogTCL0pWsqDK2E.cache
│   │                   ├── WdACZZ524TDAI9V7V8-bn3JgGDw3eIrm-9FmC1LEGJk.cache
│   │                   ├── Xzdbj2cUSOqYtjKnKjPqlONbn61GEb803AXZ7eMbtO0.cache
│   │                   ├── YMOphXUgqKELP4pdCq1qXeGjWz3rhmjwQSTeeMooOmQ.cache
│   │                   ├── YUa_5KBALpTiKZS4PlTQirWiBhFZDRtUxPncZvMuzZk.cache
│   │                   ├── _7rpHSPdMLWyI8HDaNZ2LMJfsSThbauZDZy8vd_URLI.cache
│   │                   ├── bitMw94_oLF2LVwrHkulsisNxK-t6KDiBOYaEXrwVtY.cache
│   │                   ├── cES57IDWoKQPFteInZb-LNvUM3jyZwcgWyKi8wBqOGw.cache
│   │                   ├── cF-F91Ykt7WAqCJHhyV_usBwf86yTEZzHmhWSHeYCoE.cache
│   │                   ├── cPczelcnRZie499w64klouI6QnZzSEVGgfDJVM502Xg.cache
│   │                   ├── d1kmeKp1NnZmEbiFsBe4IcN3O45G8-BVleRgH4m6fLI.cache
│   │                   ├── fdmuDgn44rcQWFDrFOW8NM7B9DQpolONZ-PoxjRByRk.cache
│   │                   ├── gBz_SCXFxPbg_KB5COUZe8JvC1maYiTSeVMaPPAexGc.cache
│   │                   ├── iT_f-IYUmMg9Zx78tLeUfZu23Z1MKXxS22j4V-F9YPM.cache
│   │                   ├── jHIAjYxu5aJ9WgsUyJ1b1M-Festxzs2AAfOCnShcv44.cache
│   │                   ├── mCijXMKaDw0nUj7tnzsZSMR37mQjUEG1wsqrvSQbjhY.cache
│   │                   ├── mKQKN_P_8jYD-Q80hhjvo4e3LImaXAMIThYLqa9Apvw.cache
│   │                   ├── oz2-KtuyHoBqStJsQMejwqgl1ZtDtne9VKk0pBwMtF8.cache
│   │                   ├── phGfPYy6jD57esoKPEOa30eBAwIzHvQQqBN9IjkKIIw.cache
│   │                   ├── q-hA47XqW-dtL50So2DPROQ6tgDvJhZ1UTdeFgDGFXY.cache
│   │                   ├── q8jI5I-w_Fu6e_oW8XninPNWIWaVVEYSEQ7i9f4zJlw.cache
│   │                   ├── qb3h7lIgYSQHqgdE_mjo7wz4NHXiVq3gjOsz9USaFHI.cache
│   │                   ├── tbaH8vE-kBZn4PCkjXPeZWj1EMJklBg3BfKBbnXtrmY.cache
│   │                   ├── uWPvIAAMAh12uxQRMFAvHx_N9YD56HkymeknExBq2HY.cache
│   │                   ├── vIYrto04h47_Hhwokye64lOOPgtEHm_Bb_-rGHQwf-4.cache
│   │                   ├── vL40blE_guKkMh34jU5qSECFIBmXLNGqHPW6Ql0mwb4.cache
│   │                   ├── w5flkPzgCei2qJkkh-ens0dnc9LXovK1EZaVVOIemiI.cache
│   │                   ├── wOh5j_m0_ulFU5d_VFIxwlmlzNXMKhw0ZSipF8zTx_o.cache
│   │                   └── zvJ0UB1gVeFR5GGsIl0WVWocUa1_sFFitnIDdsFZJEs.cache
│   ├── pids
│   │   └── server.pid
│   ├── sessions
│   └── sockets
└── vendor
    └── assets
        ├── javascripts
        └── stylesheets

57 directories, 201 files
Written on May 6, 2015