...scenario, the code below lets you write this: Given my IP address is 188.174.117.205 Rails 3 Given /^my IP address is "(.*?)"$/ do |ip| ActionDispatch::Request.any_instance.stub(:remote_ip).and_return(ip...
Rails 2 You will need the following step definitions: Given /^my IP address is (\d+\.\d+\.\d+\.\d+)$/ do |ip| ApplicationController.stubbed_request_ip = ip end After do ApplicationController.stubbed_request...
...ruby with something like user_ids = ActiveRecord::Base.connection.select_values(Message.select(:user_id).to_sql) # Rails 2 user_ids = Message.all.pluck(:user_id) # Rails 3+ User.where(:id => user_ids).update_all(:has...
top Also see: How to get a rough picture about a Rails project How to examine an unknown Ruby object
...all styling inline, which means you'll have to do your styling inline. For Rails applications, you can use Roadie or premailer, which lets you keep your well-structured CSS...
...litmus during rendering. For a preview during develoment, you can also use your local Rails mailer previews. Take the preview HTML source and paste it to Litmus. When the builder...
/^([\w!#$%&'*+-/=?^`{|}~]+.)*[\w!#$%&'*+-/=?^`{|}~]+@((((([a-z0-9]{1}[a-z0-9-]{0,62}[a-z0-9]{1})|[a-z]).)+[a-z]{2...
Note: In Rails 3+ you can use Array.wrap instead of the solution here. In the past you could use Array(...) or #to_a to turn an object into an array...
...you can copy the attached file to config/initializers or require it from a non-Rails project. You can now say: 5.listify # => [5] [5].listify # => [5] Note that this method no...
RSpec 1 (Rails 2) With the most recent spec_candy.rb helpers you can say: User.stub_any_instance(:foo => :bar) user = User.new user.foo # => :bar RSpec 2 (Rails 3) RSpec 2 comes with...
[mysqld] sql_mode="" Now restart MySQL: sudo service mysql restart For a single Rails project If you only want to change the SQL mode for one project, you can...
...with the following snippet: actors = movie.actors actors.build actors.unshift(actors.pop(1)) # won't work with Rails 4+ Because build_for_form creates new objects and appends them to the one-to...
...many association collection object you only have to reorder the collection objects. Sorting with Rails 3+ = form.fields_for :children, @parent.children.sort_by(&:name) do |fieldsform...
SSHKit 1.9.0 might fail with the following error, when trying to deploy a Rail application. Upgrading the gem to version 1.21.0 fixed the issue. Traceback (most recent call last...
You may disable multi-line autocomplete by using the --nomultiline commandline switch (for Rails, use bin/rails console -- --nomultiline), or specifying IRB.conf[:USE_MULTILINE] = false in your ~/.irbrc.
...false (intercepts invocation), whereas false&.class permits the invocation. &. might also remind you of Rails' Object#try. However, their scopes are different, and in Rails 4 nil-checking is only...
...often times the results of such subtractions go into a view. When upgrading a Rails application from Ruby 1.8 to 1.9, this will cause significant pain, and under most circumstances...
...cache_or_resolve :var, :some_expensive_calculation end This is what "memoize" in earlier rails versions did. There is a gem that reintroduces this behavior, but this is the essential...
...behaves like an unordered Hash, but is much faster. Info If you're using Rails you already have concurrent-ruby in your bundle. hamster hamster provides several collection classes, such...
There is a practical short list for valid/invalid example email addresses - Thanks to Florian L.! The definition for valid emails...
...for your application's bit of metaprogramming. It may matter for a framework like Rails, and for methods that are called really often, but that is not your everyday code...
...use it anyway, learn the lessons we already learnt: Use a compatible Rubygems for Rails 2.3 on Ruby 1.8.7 Ruby 1.8.7 is not compatible with current Rubygems versions (> 2.0). Runnig...
...add ANSI color annotations (which your console then interprets). To print a log (e.g. rails log) and color all lines containing "FATAL" in red and all lines with "INFO" in...
...for when you can use transactions: Transactions cannot be used for Selenium features, where Rails and test run in different processes and thus don't see changes within the transaction...
...different cleaning strategies I measured the runtime of different strategies using an average-sized Rails project (with MySQL): Cucumber RSpec Transaction 87.14, 86.65 10.20, 10.11
...Keep in mind that this will not affect processes that are invoked through the Rails console. Put the environment variables into the user's shell configuration (e.g., ~/.bashrc) if you...
Issue: You have an app using jsbundling-rails and esbuild. After deploy, the assets built by esbuild are missing in public/assets. Solution: Add app/builds to your git repo (by adding...
Rails has the handy controller method send_file which lets us download files easily. We can decide whether the file should be downloaded (disposition: 'attachment') or shown in the browser...
...column" ASC NULLS FIRST Your indexes will have to specify this as well. In Rails, declare them using add_index :table, :column, order: { column: 'DESC NULLS LAST' } Multiple columns