Ruby on Rails
- Rake
- Google OAuth2 with Ruby on Rails
- Using Capybara with Minitest for Integration Tests in Rails 4
- Loading
seeds.rb
data into test database throughrake test
- Installing capybara-webkit on Ubuntu
- Enabling Jenkins support with Ruby on Rails tests
- Testing reports with Rails 4 and Minitest (just follow the instructions as is)
How I learnt Ruby on Rails
Following the Getting Started guide:
- Don’t install the Cygwin version of Ruby or Ruby-rails. They will not work because I think cygwin paths get in the way of generating temporary files for Javascript compilation: Error: Cannot find module ‘C:/cygdrive/c/DOCUME~1/Jevon/LOCALS~1/Temp/execjs20140124-6456-ws3la8.js’ (in /usr/lib/ruby/gems/1.9.1/gems/turbolinks-2.2.0/lib/assets/javascripts/turbolinks.js.coffee)
- Install Ruby 1.9.3 from the Windows Installer package
- Install the Ruby 1.9.3 devkit: download the executable, extract it somewhere, follow the install instructions
- Install rails:
gem install rails
SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
On Windows, this error occurs because the Ruby on Rails install does not come with a server certificate package. As per this StackOverflow answer:
- Download http://curl.haxx.se/ca/cacert.pem into
C:Railscacert.pem
- Go to your Computer -> Advanced Settings -> Environment Variables
- Create a new System Variable:
SSL_CERT_FILE
=C:Railscacert.pem
Close all your command prompts, including your rails server
, and open up a new irb
command prompt to test that it works:
$irb> require 'open-uri'
$irb> open('https://www.gmail.com')
Partial not rendering
Make sure you use <%= render 'form' %>
, not the non-printing form without equals <% render 'form' %>
. I’m guessing this is a different render to render text:
in a controller.
Adding a new database field after generation
Initial generation of a database table:
rails generate model User openid_identity:string created_at:date name:string
rake db:migrate
Adding a new field ‘last_login’:
rails generate migration add_last_login_to_users last_login:date
rake db:migrate
Could not find generator monban:scaffold
The generators were moved into a separate Gem, monban-generators - add this to your Gemfile.
RuntimeError: @controller is nil: make sure you set it in your test’s setup method.
Are you trying to write an integration test in test/integration/foo_test.rb
? Make sure that you are using ActionDispatch::IntegrationTest
as your test superclass, rather than ActionController::TestCase
:
require 'test_helper'
class FooTest < ActionDispatch::IntegrationTest
def setup
...
Loading additional autoload paths
In your config/application.rb
(note everything within app/**/*
should be autoloaded anyway!):
# load additional paths
config.autoload_paths += Dir["#{config.root}/custom/services/**/"]
Running a single Rspec file
$ rspec spec/games/playable_spec.rb --require rails_helper