rails
注意 このエントリは急いで書いたので間違いが含まれている可能性が高いです。気づいた方はご指摘ください。 序文 strong_parameters とは、mass assignment で余計なパラメータをモデルの属性にセットさせないための新しい仕組みです。Rails 4.0 からはこれ…
エラー通知用のウェブサービス Airbrake の ruby 用プラグイン airbrake の README を一部和訳したメモを発掘したので載せておきます。 airbrake は exception_notification とは違い同種のエラーであれば複数回発生しても通知は一回だけ送られるのと、web上…
#385 Authorization from Scratch Part 1 (pro) - RailsCasts を見ていて気づいたのでメモ。 Ruby on Rails Documentation に書いてあったコード例をみると分かるけど、include? の逆パターンですね。基本的には include? 使えばいいと思いますが、場合によ…
strong_parameters のソース読んでたら Hash#slice が使われていることに気づいて、「あれ、こんなメソッドあったっけ?」となり調べてみました。どうやら Rails(ActiveSupport) で hash を拡張しているようです。 引数の key だけを含む hash を返します。…
昨日 @bekkou68 さんに「前島さんってどうやってRubyやRails関連の情報を収集しているんですか?」って聞かれたのでまとめてみます。とりあえず海外のブログ限定で。日本ブログ編は気が向いたらやります…。 RailsCasts 有名すぎて説明不要かもしれませんね。…
Rails 4.0 のデフォルト Gemfile に入るらしい、pjax っぽいことをして画面遷移を高速化する gem turbolinks について軽く調べてみました。 Introducing Turbolinks: github.com/rails/turbolin…. This will ship as default-on in Rails 4.0 Gemfile. PRESS…
rails generate controller で controller を生成すると、必要の無い helper、 coffee、stylesheet ファイルが一緒に生成されるので後で消すのがめんどくさいですね。そんなときは下記のように –no-helper オプションや –no-assets オプションを付けることで…
Rails 4.0 では、development 環境で http://example.com/rails/info/routes にアクセスすると、ルーティング情報が下記のように確認できるようになりました。4.0から rake routes でルーティングを確認する機会はかなり減りそうです。 これは sextant とい…
Rails4.0 を試したいなーと思ったのですが、インストールの仕方を 以前やったことがある にもかかわらず忘れてました><。 cd ~/work/github/ git clone git://github.com/rails/rails.git ~/work/github/rails/bin/rails new yourapp --edge 上記のように…
Ruby on Rails Guides: Active Record Query Interface の joins の章を見てメモったので載せておきます。 11 Joining Tables joins メソッドについて。 11.1 Using a String SQL Fragment 単純に JOIN 節の生 SQL を引数として書ける Client.joins('LEFT OU…
いつの間にか Fabrication がバージョン2になっていて、そこで非互換な変更がされたようです。バージョン1からの移行の仕方が書かれた Fabrication 2.0 Upgrade Guide - The Hashrocket Blog を意訳したので載せときます。 全ての末尾の”!”を削除 ”!” は dep…
復習用エントリ。そもそもローカルのgemのrdoc見る機会も少なくなってるというのもあり完全に忘れてた。gem server よりも yard server --gems で出力する rdoc の方が見やすいですね。 参考 Route 477 - ローカルのgemのドキュメントを見る簡単な方法(2010…
Rails3.1 から同梱されるようになった sprockets の README の意訳です。 sstephenson/sprockets - GitHub はじめに Sprockets は assets ファイルのコンパイルと配信を行うための Ruby のライブラリです。JavaScript と CSS ファイルの依存関係を宣言でき、…
JavaScript を使ったエンドツーエンドテストには capybara の selenium ドライバを使っています。JavaScript のテストが出来るのは大変便利なのですが、selenium を使うと firefox が立ち上がってガチャガチャとやるので遅いです。あとはテスト用のサーバを…
Pow は development 用!という先入観があったけど、#{Rails.root}/.powenv に export RAILS_ENV=productionとかしておけば、Pow で production を試すことが出来ることに気づいた。
最近 rails new コマンドを使って rails アプリを生成することが多いです。作るたびに .gitignore に /vendor/bundle を追加するなどいつも同じ事をしていたので、テンプレートを使って共通化することにしました。ファイルをGistにアップして下記のように使…
capybara 経由で selenium を使ってテストする時に、確認ダイアログを含む js をテストする方法のまとめ。 昔のやり方 クリックする前に、confirm の内容を差し替える方法。 page.evaluate_script('window.confirm = function() { return true; }') page.cli…
遅まきながら capistrano デビューをしようと思い立ちました。ググった感じでは断片的な情報しかひっかからなかったので、それらをまとめて全体的な情報を網羅した内容をブログに書こうと思ったのですが、Railsデプロイの capistrano の章がよくまとまってい…
結構前のメモを発掘したので一応載せときます。Rails 3.1 から SCSS が標準になったので、scss-mode を導入してみました。antonj/scss-mode - GitHub自動で SCSS を CSS にコンパイルしてくれる機能がありますが、Rails 3.1 で使うだけなら自動コンパイル必…
テスト用、開発用の gem を除いて gem をインストールしたい場合、--without でいらないグループを指定するといい bundle install --without test development
注意 この訳はだいぶ古い(2011年7月時のREADME)です。最新版の訳をgithub上に載せたのでこちらをご覧ください。 はじめに Rails のエンドツーエンドテスト用のデファクトスタンダードプラグイン Capybara の README 意訳です。いつもと比べて直訳成分多めで…
下記のようなコードがうまく動かなかった。 link_to "削除", post, remote: true, method: :delete しばらく悩んだあと jquery_ujs.js を手動で最新に更新したらうまく動いた。ファイルの更新を自動でやってくれるといいんだけどなー・・・と思ったら Genera…
Railsアプリの開発に bundler を使うようになって、gem 関連でハマることは少なくなったような気がします。ただ、その代わりに、なにかコマンドを叩くときに bundle exec をつけ忘れてエラーになることが時々あって、そんな時に少々めんどくさく感じます。bu…
i18n用のファイルを下記のように設定してやると ja: helpers: submit: create: "登録する" update: "更新する" submit: "保存する" label: user: email: "メールアドレス" password: "パスワード"下記のようなフォームが日本語になります(I18n.locale = "ja"…
rails が追加しているメソッド。真ならオブジェクト自身を返して、偽なら nil を返す。 object.present? ? object : nil. と同じ。下記のような、パラメータをチェックして使うよくある感じのコードが state = params[:state] if params[:state].present? co…
Configuring Rails 3 to use HTTPS and SSL – Simone Carletti's Blogの意訳。 Rails 3.1以降 Rails3.1以降からは、このコミットによってHTTPからHTTPSへ遷移させるのがちょう簡単にできるようになった。下記のようにするだけでOK。 # config/application.rb…
capybara のドライバによって設定の仕方は違うようですが、デフォルトの Rack::Test であれば Capybara.default_host = "en.example.com" のようにすることで、サブドメインへアクセスすることができるようになります。 参考 capybara with subdomains ― Gist
またまたRails 3.1 ネタです。Rails 3.1 では migration ファイルのデフォルトフォーマットが変わりました。 rails g model blog title:string body:text としたとき、Rails 3.0 では下記のファイルが生成されます class CreateBlogs < ActiveRecord::Migrat…
Rails 3.1 からパスワードの暗号化用のモジュールができたようです。ActiveModel::SecurePassword で定義されていて、ActiveRecord や Mondoid などの ActiveModel を利用しているモデルで使えるそうな。User モデルに password_digest カラムが設定されてい…
deviseでログイン後に遷移するパスは、デフォルトだと {deviseで指定したmodel名}_root_path root_path の順番で探す。それ以外を指定したい場合は、ApplicationController で after_sign_in_path_for メソッ ドをオーバライドする。 例 class ApplicationCo…