Ruby

RSpecでブラウザのダイアログを操作する方法

ブラウザのダイアログ Railsエンジニアにはおなじみではありますが(*)、リスクのある操作を行う際に、以下のようなブラウザのダイアログを表示することで確認を促す処理はケースとして良くあることと思います。(画像はGoogle Chromeの例。) 今回はそのよう…

ActiveResourceでauth_token的なトークンで認証する方法

Rails4からは正式にプリインストール対象から外れたActiveResourceではありますが、アクセス先が絵に描いたようなRESTfulAPI、とりわけ開発者が内情を知ってるRailsアプリ間の連携等では今なお大いに力を発揮するもの。しかし、 http://example.com/posts.js…

activerecordの関連するモデルをまとめて取得するメソッドのincludesが多段の関連モデルでも使えた

例えば、以下のような3層にまたがる関連モデルがあるとすると、 class Team has_many :members end class Member belongs_to :team has_many :tasks end class Task belongs_to :member end この場合、Taskのインスタンスオブジェクトから、 関連するTeamオ…

OmniAuth(OAuth2.0)でproxyを使う方法

YammerのOAuthで認証するアプリが作りたいんだけど、proxyが必要なネットワーク内でかつ、 環境変数の”http_proxy”が使えないときのメモ。※そんなマニアックスな人が世の中にどれだけいるか甚だ疑問ですが、、結果的に、 Rails.application.config.middlewar…

Macbook Air 2012(mid) にvim-rubyを入れた

Macbook Air 2012(mid) が手に入ったので、いつものごとくvim-rubyを入れました。以前のポスト例のごとく、vimがrubyに対応してるか確認すると、 mba:~ kazuki.yunoue$ vi --version | grep ruby -python3 +quickfix +reltime -rightleft +ruby/dyn +scrollb…

ActiveRecordモデルの独自で作成したメソッドもjson(もしくはxml)で出力したい

シチュエーション的には、 class Book < ActiveRecord::Base attr_accessible :title, :author, :price def price_with_tax return self.price*1.05 end end こんな感じでモデルに独自のメソッド(price_with_tax)がある場合、 # GET /books/1 # GET /books…

newgemで新しくgemを作ろうとしたら、`to_specs': Could not find rubyforgeで怒られた

`to_specs': Could not find rubyforge (>= 0) amongst [RedCloth-4.2.9, activesupport-2.3.14, hoe-3.4.0, newgem-1.5.3, rake-10.0.3, rubigen-1.5.8, syntax-1.0.0] (Gem::LoadError)こんな感じで怒られてしまうので、 gem install rubyforge rubyforge…

rvmそのものをupdateする方法

rvmで1.9.3-p125を入れようとしたのに、 rvm list known | grep 1.9.3 で出てこなくてなんでーって思ってて、rvmそのもののupdate的なものがあるのかなーと思ったら、ありました。 rvm get {stable|latest|x.y.z|head|master|branch|help} [--auto] でてきた…

Railsで別タブ(別ウインドウ)で開かれるリンクを作る方法

<%= link_to "go on to the next page", URL_PATH, :target=>["_blank"] %> これでおっけー!こうするとhtml的に、 <a href="xxx.html" target="_blank">go on to the next page</a> となって、別タブ(別ウインドウ)で開かれます。

Rails 3からHTMLエスケープがデフォルトになったよやったー!でも無効にしたいときもある

コレ。 <%= @user.name.html_safe %> で、自動のHTMLエスケープを無効化できるって話だったのだけど、 <%= raw @user.name %> というのもあるらしい。エスケープの観点でいうと前者のが良いのかしら。。どっちがいいんだっていう英語のQ&Aサイトはあった。コ…

Mac(Lion)にvim-rubyを入れる

まず、MacのvimがRubyに対応しているか確認する。(たいていしてない。) vi --version | grep ruby これで"-ruby"となっていたら対応していない。そこでまずvimの入れ替えってことで、macportsを利用します。 ※もともとmacportsでvimを入れてないとココでな…

test

test