...A minimum total number of forms (both blank and pre-filled) so the user sees more than just 2 blank Actor forms when she is entering Actors for the first...
...the number of total rows. By default there is no limit. You can also set defaults for built records by adding additional keys to the options hash: form.build_nested_records...
...inherited methods but call the parent's implementation, too. In JavaScript, there is no simple "super" method like in Ruby -- so here is how to do it with Backbone.
...own initialize method, and you'd get this console output: Hello World. How to super But we want initialize of BaseClass to run as well -- and if you want to...
...On purpose? Right... In Gnome Make it an additional ESC key by going to System -> Preference -> Keyboard -> Layouts -> Options -> CapsLock key behavior and select "Make CapsLock an additional ESC".
...to using dconf. dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']" Or, open Tweak advanced GNOME 3 settings and follow Keyboard & Mouse -> Additional Layout Options to chose the same option as described above...
...so I hope it will be fixed with a future release. The following test succeeds: context 'factories' do let(:test_case) { FactoryBot.create(:test_case) } it 'are valid' do expect(test...
...byebug) FactoryBot.create(:test_case) *** NameError Exception: uninitialized constant # ::TargetLimitation Did you mean? TargetsTestScenario It seems like Byebug does not work well with zeitwerk. There is already a patch in Ruby...
The robots.txt file and HTML tag can be used to control the behavior of search engine crawlers. Both have different effects. robots.txt Marking a URL path as "disallowed" in robots.txt...
...crawlers to not access that path. robots.txt is not a guarantee for exclusion from search engine results. A "disallowed" URL might be known from an external link, and can still...
Expiration of Rails sessions By default Rails sessions expire when the user closes her browser window. To change this edit your config/initializers/session_store.rb like this: ActionController::Base.session = { :key => '...', :secret => '...' :expire_after...
} In older Railses the initializer is not available. Set the option in the environment.rb instead: config.action_controller.session = { :key => '...', :secret => '...' :expire_after => 10.years } Expiration of Rails cookies In addition to the...
So I had the issue that User input (coming from many different sources and users) often contains the same long word. Maybe that's a super german thing...
...compiler that crawls the document and replaces all occurencies of certain word and puts a soft-hyphen (­, or \xAD) where i want the word to break. This is only...
...links. Popular pagination libraries like will_paginate or Kaminari do this for us by simply issuing an extra query, like this: SELECT post.* FROM posts LIMIT 20 OFFSET 100;
...of the time. But rarely, you might have very complicated WHERE conditions or a subquery that takes time to run. In these cases, doing two queries is slower than it...
Moved from Less to Sass. Bootstrap now compiles faster than ever thanks to Libsass, and we join an increasingly large community of Sass developers. Improved grid system...
...added a new grid tier to better target mobile devices and completely overhauled our semantic mixins. Opt-in flexbox support is here. The future is now—switch a boolean variable...
...wanted bundle update some_gem What is wrong Let's say your Gemfile asks for some-gem which you can see when running gem list but bundle show some-gem...
...just gives you an error: Could not find gem 'some-gem', in any of the sources Another indicator: Doing a bundle install --local breaks and bundle install installs every gem...
...you need to do it yourself. It's not that hard: Get more disk space Add an extra virtual hard disk to the machine with the disk size you want...
...the CD, open a terminal (on the guest, not the host!) and become root: sudo su fdisk -l to see the disk information. \ There should be one drive with some...
...Ever wanted to give an element "the container's width minus 20px on each side"? Here you go: .foo { width: calc(100% - (20px * 2)); } When using Sass, you need to...
...interpolate Sass expressions: $margin: 20px * 2 .foo width: calc(100% - #{$margin}) Supported by all modern browsers and IE9...
When using Sidekiq in your application, you must write thread-safe code. This wiki page also lists gems that are known to be unsafe on threaded applications.
...gem that will also be used by a Sidekiq worker, make sure to confirm it's thread-safe...
Spreewald gives you the within meta step that will constrain page inspection to a given scope. Unfortunately, this does not work with RSS feeds, as they're XML documents and...
...re inspecting XML that is invalid in HTML, you need to inspect the page source instead of the DOM. You may use Spreewald's "... in the HTML" meta step, or...
Rails 5.2+ supports "verbose query logs" where it shows the source of a query in the application log. Normally, it looks like this: User Load (0.5ms) SELECT "users".* FROM...
...app/controllers/users_controller.rb:42:in `load_users' However, you may encounter ActiveRecord's LogSubscriber as the source for all/most queries which is not helpful at all: User Load (0.5ms) SELECT "users...
...and extract it:\ tar xvfz rubygems-1.3.7.tgz If you previously had RubyGems installed via apt: \ sudo apt-get remove rubygems Install RubyGems:\ cd rubygems-1.3.7 && sudo ruby setup.rb
sudo ln -s /usr/bin/gem1.8 /usr/bin/gem If gem list does not show all gems you previously had, you can create a symlink to your old gem directory:\ cd /usr/local/lib/ruby && sudo...
...Consider this HTML: Hello World Lorem ipsum... Hello Universe Lorem ipsum... Now let's say you obtain a list of all such message containers as an array: messages = page.all('.message...
messages[0].find('h2', :text => 'Hello World').text => "Hello World" Now we search inside the same container as above, which contains "Hello World" as its headline. \
Most of the JavaScript snippets have code that manipulates the DOM. For that reason dom manipulating javascript code should have been executed after the DOM has loaded completely. That means...
...above would have the advantage not to pollute the global scope and to reduce unexpected side-effects...
...t requested an action for a while. Note that this is different from deleting sessions some time after the last login, which is the default. Also note that this is...
...probably a bad idea. Most sites keep sessions alive forever because having to sign in again and again is quite inconvenient for users and makes your conversion rates go down...
...a great jQuery library to make (large) fields more usable. For Bootstrap 3 there is select2-bootstrap-theme. It won't work for Bootstrap 4, but rchavik's fork does...
...if you have some. @import ~bootstrap/scss/bootstrap/variables @import ~bootstrap/scss/bootstrap/mixins @import ~font-awesome/scss/font-awesome @import ~select2/src/scss/core @import ~select2-bootstrap-theme/src/select2-bootstrap4.vars @import ~select2-bootstrap-theme/src/select2-bootstrap @import ~select2-bootstrap-theme/src/select2-bootstrap4.after
...gem 'cucumber_factory' Run bundle update on any added/changed gem, e.g. bundle update cucumber capybara selenium-webdriver database_cleaner cucumber_spinner Error messages & solutions uninitialized constant JSON -> Add gem 'json...
...to your Gemfile uninitialized constant Selenium -> Add gem 'selenium-webdriver' to your Gemfile Failing Cucumber steps that use find Capybara 1's #find method raises an error if nothing could...
...provides you some methods that help you to write readable and understandable method chains. See yourself: Example // before $('.some').show().children().doThat(); window.setTimeout(function(){ $('some').children().doSomething().hide(function() { window.setTimeout...
otherStuffToDo(); }, 1000); }); }, 500); // after $('.some').show().children().doThat() .wait(500) .doSomething().hide() . wait(1000) . otherStuffToDo(); jquery-timing transformed the setTimeout callback into a chainable method. Now the code is...
...message like this, rubygems.org might have issues with their ipv6 connectivity: $ bundle install Fetching source index from https://rubygems.org/ Retrying fetcher due to error (2/4): Bundler::HTTPError Could not fetch...
...specs from https://rubygems.org/ due to underlying error <timed out (https://rubygems.org/specs.4.8.gz)> The (a little bit dirty) possible solution If that's actually the case, then you can try...
...give you the =~ matcher: actual_array.should =~ expected_array Rspec 3 With RSpec 3's expect syntax you can choose one of these two matchers: expect(actual_array).to match_array...
...but contain_exactly takes a list of elements as varargs. Test::Unit If you install shoulda-matchers you can say: assert_same_elements([:a, :b, :c], [:c, :a, :b])