Clone this wiki locally
Eficode Academy - Ruby on Rails - Intermediate
Welcome to Ruby on Rails Intermediate course provided by Eficode Academy!
About the course
We also have a chatroom in Campfire for the course. All the participants should have received a personal email invitation. If you haven't got an account and want one, contact your teacher.
Forking the repository
On this course everyone should make their own fork of the teachers' repository, and do their work there. This way we can also keep track of homework assignments.
If you were present in session 1, you should have this part done already.
- Open https://github.com/Eficode/rails-int-hh in your browser
- Click the "Fork" button. Github should now start forking the repository.
- You should now be taken to the homepage of your own fork. This is the one you should clone to do your work.
After cloning the repository, change to project directory and execute these commands:
# Install missing package dependencies (Gems) bundle install # Run latest Database migrations rake db:migrate
What if I missed the session or some code?
You can at any point make a new fork of the teachers' repository, as described in the last section. The master branch of the teachers' repo will include the previous week's codebase.
Homework exercises should be pushed to your own forked repository. Whenever you are finished with a homework exercise, you will need to do a Pull request.
- Make sure all your changes are committed and pushed
- In Github, go to your repository page and click "Pull request"
- Enter the session/week number to the title field, for example the first week's exercise should have title "Session 1".
- You can also send a message to the teachers by adding it to the description field.
- Click "Send pull request"
Session 1: Configuration. Testing. Gems.
- Initialization - Rails Guides
- Configuring - Rails Guides
- Helpful links for Factories
- What is Mocking?
- Mocks arent Stubs
- Railscast on Guard
- Guard Github page
- List of available Guards
- Shoulda documentation
- Gem Versioning and Bundler: Doing it Right
- Using >= Considered Harmful (or, What’s Wrong With >=)
- Rdoc Documentation
Session 2: Authentication and Authorization
- Authentication from Scratch Railscast
- How To Safely Store A Password
- Singular resources
- Form tag helpers
- Rails session stores
- What Ruby’s ||= (Double Pipe / Or Equals) Really Does
- Exercise 1 - Dynamic Search Term Placeholder
- Exercise 2 (Homework) - Ajax Search
- Session 3 Walkthrough
- Searchable jQuery Documentation
- jQuery Fundamentals - Free online book
- Rails' jQuery Adapter
- Rails 3 Remote Links and Forms: A Definitive Guide
- Rails 3 Remote Links and Forms Part 2: Data-type (with jQuery)
- Rails' to_json
- Introduction to BDD (style of testing used in Jasmine)
Session 4: Many-to-many associations. Web services.
- has_many :through
- Choosing Between has_many :through and has_and_belongs_to_many
- Shoulda matchers in functional tests
- Google Books API
- rest-client - an alternative HTTP client
- ActiveResource - a RESTful API client included in Rails
- A Brief History of Mock Objects
Session 5: ActionMailer & I18n
- Rails Guide on ActionMailer
- Mail Gem
- ActionMailer API
- RailsCasts: ActionMailer in Rails 3
- Rails Guide on I18n
- Rails Locale Data Repository
Session 6: Security on Rails
- Session 6 Walkthrough
- Exercise 1: Mass assignment protection
- Homework Exercise: Security updates
Session 7: Performance and Caching