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