Skip to content

Instantly share code, notes, and snippets.

View qcam's full-sized avatar

Cẩm Huỳnh qcam

View GitHub Profile
@qcam
qcam / rails_admin-customise_authorisation.md
Last active August 29, 2015 14:01
How to customise authorisation rails_admin

How to authorize rails_admin

config.authenticate_with do
  warden.authenticate!
end

config.authorize_with do
  redirect_to main_app.root_path unless current_user.has_role?(:admin)
end
@qcam
qcam / view-helper-datetime-options.md
Last active August 29, 2015 14:01
Configure datetime options
= simple_form_for @time_slot, url: booking_path, method: :patch do |f|
  = f.input :start_time, :as => :datetime, :minute_step => 30, :include_seconds => true, :discard_year => true, :datetime_separator => ' — ', :time_separator => ' - '
  = f.input :id, as: :hidden
  = f.submit "Book this slot", class: 'btn'
@qcam
qcam / rvm-gemset.md
Created May 9, 2014 07:27
RVM Gemset commands

get gemset list

rvm gemset list

empty gemset

rvm getmset empty [gemset_name]
@qcam
qcam / heroku-config-sendgrid.md
Last active August 29, 2015 14:01
Mailer Configuration on Heroku

Heroku Mailer (SendGrid) configuration steps

  • Go to your heroku application.

  • Add SendGrid addons

  • Config STMP settings to your config/environment.rb

ActionMailer::Base.smtp_settings = {
@qcam
qcam / rails-active-record-pluck.md
Created May 12, 2014 08:23
[Active Record] How to get a single column's values into an array
@qcam
qcam / rspec-anomyous_controller.md
Last active August 29, 2015 14:01
How to test anomyous controller with RSpec

In your logged_in_controller.rb

class LoggedInController < ApplicationController
  before_filter :authenticate_user!
end

In your logged_in_controller_spec.rb

@qcam
qcam / rails_admin-configuration.md
Created May 16, 2014 11:03
Rails admin field config

Rails Admin field configuration

rails_admin do
  list do
    field :customfield do
      def value
        bindings[:object].your_method
      end
    end
 end
class UrlValidator < ActiveModel::EachValidator
  def validate_each(record, attribute, value)
    record.errors[attribute] << (options[:message] || "must be a valid URL") unless url_valid?(value)    
  end

  # a URL may be technically well-formed but may 
  # not actually be valid, so this checks for both.
  def url_valid?(url)
 url = URI.parse(url) rescue false
@qcam
qcam / capybara-wait_fo_ajax.md
Created May 20, 2014 02:38
Capybara - Wait for ajax to complete

##Capybara - Wait for ajax to complete

def wait_for_ajax
  Timeout.timeout(Capybara.default_wait_time) do
    loop do
      active = page.evaluate_script('jQuery.active')
      break if active == 0
    end
 end
@qcam
qcam / jquery-on_events.md
Last active August 29, 2015 14:01
jQuery event binding

The markup

<div id="parent">
  <a id="child">Click here please</a>
</div>

Instead of binding event this way this way