Skip to content

Instantly share code, notes, and snippets.

View qcam's full-sized avatar

Cẩm Huỳnh qcam

View GitHub Profile
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 / 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
@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-active-record-pluck.md
Created May 12, 2014 08:23
[Active Record] How to get a single column's values into an array
User.where(:role => :admin).order(:username).pluck(:email)    #=> [admin1@example.com, admin2@example.com]
@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 / 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 / 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 => ' &mdash; ', :time_separator => ' - '
  = f.input :id, as: :hidden
  = f.submit "Book this slot", class: 'btn'
@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

Setup a WYSIWYG editor with CKEditor. Includes instruction for Rails_Admin

  • Add gem 'ckeditor' to your Gemfile and bundle
  • Checkout https://github.com/galetahub/ckeditor for instruction to generate the correct model to generate for uploading of files (eg. ActiveRecord + Paperclip)
  • Run rake db:migrate
  • Add //= require ckeditor/override in your application.js (before require_tree .)

To configure the editor to be used in Rails_Admin, follow this https://github.com/sferik/rails_admin/wiki/CKEditor

Sample Rails_Admin model config

@qcam
qcam / voting-star-css.md
Created May 3, 2014 00:51
Voting star with CSS
  • Star Rating with only CSS
<div class="star-wrapper">
  <a class="star" href="javascript:alert(1)"></a>
  <div class="star-wrapper">
    <a class="star"></a>
    <div class="star-wrapper">
      <a class="star"></a>
      <div class="star-wrapper">