radio button form_tag

.select
  = label 'validation_setting', "ON", class: 'radio-inline' do
    = radio_button_tag 'validation_setting', "ON", {:checked => true}
    %span ON
  = label 'validation_setting', "OFF", class: 'radio-inline' do
    = radio_button_tag 'validation_setting', "OFF"
    %span OFF

select2 ajax

gem

gem "select2-rails"
gem 'ransack'

html

= form_for @content, url: club_contents_path(params[:club_access_token]) do |f|
  .form-group
    = f.label '部長'
    .select
      - if params["leader_employee_id"]
        = select_tag 'leader_employee_id', options_for_select(@employees.collect{ |u| [u.profile, u.id] }, selected: params["leader_employee_id"]), { class: 'chosen-select form-control', multiple: false, prompt: "名前か従業員番号を入力して、検索してください" }

js

contents.coffee

$ ->
  $('.chosen-select').select2({
    placeholder: "名前か従業員番号を入力して、検索してください"
    ajax:
      url: '/employees/search.json'
      dataType: 'json'
      delay: 250
      cache: false
      data: (params) ->
        q: params.term
      processResults: (data, params) ->
        results: $.map data, (obj)->
          id: obj.id
          text: obj.name
  })

root

get 'employees/search' => 'employees#search'

コントローラー

class EmployeesController < ApplicationController
  def search
    q = params[:q]
    if q.blank?
      @employees = nil
    else
      @employees = Employee.search(:name_cont=>q).result
    end
    render json: @employees
  end
end

参考

https://select2.github.io/examples.html
http://blog.scimpr.com/2016/01/04/rails4-2%E3%81%A7select%E3%82%92%E7%B5%9E%E8%BE%BC%E3%81%A7%E3%81%8D%E3%82%8Bselect2%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%80%9Cselect2/

rails routeのパスにidを使う

テーブル

t.string :access_token, :null => false

コントローラー

after_initialize :set_access_token

private
def set_access_token
  self.access_token = self.access_token.blank? ? generate_access_token : self.access_token
end                                                                                                                                                                                          

def generate_access_token
  tmp_token = SecureRandom.urlsafe_base64(6)
  self.class.where(:access_token => tmp_token).blank? ? tmp_token : generate_access_token
end

ルート設定

resources :schedules, param: :access_token

参考

http://qiita.com/ainame/items/eb9dcf7862630c44d5e9
http://qiita.com/mudai/items/34501ddd2f0bd834f303

rails エラーメッセージ日本語化

手順

  1. config設定
    config/application.rbの編集
// 以下を追記
config.i18n.default_locale = :ja
  1. Gemインストール
gem 'rails-i18n'
  1. modelの日本語化
    config/locales/ja.yml (新たに作成)
ja:
  activerecord:
    models:
      content: 申請内容
    attributes:
      content:
        name: 部活名
        name_カナ: 部活名_カナ
        area:  活動ブロック
        main_area: 主な活動拠点
        genre: ジャンル
        frequency: 活動頻度
        description: 活動計画
        summary: 部の特徴

参考

http://blog.chi-kun.com/entry/2016/04/17/024627