Ruby on Rails
ども、@kimihom です。 今回は Rails の ActionView における、content_for について。まずは簡単な使い方からおさらいしよう。 content_for の使い方 例えば、 app/views/layouts/application.html.erb がこんな作りになっていたとする。 <html> <head> <title><%= page_title</title></head></html>…
ども、@kimihomです。 今回は Rails でグラフの描画について。 大抵、グラフを描画するとなると、サーバーからデータをViewに渡して、そこからJavaScriptでデータをどんどん投入してようやく描画、という長いプロセスを踏む必要がある。Rails 側でデータをし…
今回は ActiveRecord の機能の紹介。 読者の方で以下のようなRailsコードを書いたことがないだろうか? class ArticleController < ActionController::Base before_action :fetch_article, only: [:show, :edit, :update, :destroy] def ... end private def…
普通にRails扱うのと、Herokuにあげる用のRailsを扱うのとではやはり構造とかを多少変える必要がある。 以下のやり方は、厳密に言えば「できる限り本番と同じ環境にした方が良い」というやり方とは違うため、この方法をするのであれば、必ずHerokuにstaging…
Railsでの基本的な開発スタイルといえば、ページはリンクとフォーム送信、そしてリダイレクトの基本構成だろう。確かにこれでWebアプリケーションを作ることができる。 ただ今回はよりリッチなWebアプリケーション、具体的にはAjaxを駆使した開発について、R…
Sass といえば Rails でデフォルトで搭載されている, CSSを描きやすくするためのライブラリだ。「CSSをネスト構造で記述できる」というだけでSassの80%以上使いこなしていると言えるのだと思っているけど、残りの数%について、特に便利なものを調べたのでま…
自動電話応答(IVR) を誰でも簡単に作れるサービスを目指してコールコネクトをリリースした。 CallConnect(コールコネクト)www.callconnect.jp 自動電話応答(IVR)とは 自動電話応答(IVR)とは、例えばどこかの企業に電話をかけた時、「お電話ありがとうござい…
Rails Guideは常に最新のドキュメントがまとめられているため、たまにページに行くと、有益な情報が転がっていることが多々ある。 ちょっと理解が怪しい部分や、開発中によく迷う部分とかをたまに読んでみると、新しい発見があって、成長した気になれる。 今…
Rails ネタ。 結論 layout の yield 以外で同様の yield を使いたい場合は content_forを使おう。 解説 app/views/layouts/application.html.erb は共通のレイアウトを定義するデフォルトのレイアウトファイルだ。そこには必ず <%= yield %> が入っていて、…
今日は便利なGemを紹介。 掲示板システムをアプリとかで運用していると、NGワード連発な方々がどうしても出てきてしまう。そのため彼らの投稿は拒否したり特殊文字で置き換えたりする必要がある。 そんな時に便利な Gem が GitHub - tjackiw/obscenity: Obsc…
認証ありの Rails アプリケーションでのよくある話。 例えばこんなコードがあるとしよう。現在のユーザーの記事一覧を取得するコードだ。 class ArticlesController < ActionController::Base before_action :authenticate_user! def show @article = Articl…
これは原因がわかりにくいのでメモ。 問題概要 DBの値を更新したはずなのに、 rails console でその変更が確認できない 問題詳細 rails console はご存知 irb で 各 Rails のモデル操作のテストができる優れもの。よく使う方は多いと思う。今回は別ウィンド…
テストを書くべきだ、と人は言う。テストを書けば大きな変更にも柔軟に対応することができるそうだ。 テストをほとんど書いてなかったかつての自分にとってそれはよくわからないものだった。テストを動かすまでの手間や書いたとしてもテストを通すようにする…
最近は毎日プログラミングの日々を過ごしている。 そんな中、とあるテーブル(ドキュメント)で状態を管理しなきゃいけない場面があった。 この問題の一つの手としてはstate をint で保存し、一つ一つの数字を何かしらの状態に紐づけるやり方だ。これを実践し…
今までずっと謎だった。 bundle install これだけでいいじゃないか、なんでわざわざ --path を付ける必要があるのか、と。 何が嬉しいか gem をいじっても他のRailsアプリを汚さない ctagによる検索が可能になる ctagの存在を知らなかった。。今まで自分をvi…
今回はちょいとマニアック。 問題 APIのテストはController Specではなく、Request Specに書くべきなのだが、DoorkeeperのサンプルコードはController Specで書かれている。こんな感じのコード describe Api::V1::ProfilesController do describe 'GET #inde…
スマホアプリから会員の新規登録、ログインが両方できるようにAPIを作成中。ようやく自前でアクセストークンを作ってOAuth認証が出来たのでまとめておく。 まず何がしたいか? スマホアプリでAPI認証ができるように、OAuthを自前で作成したい。 -> スマホア…
どもー。 いよいよ最終回です。 Chef によりRails アプリをデプロイできる環境が整ったので、いよいよCapistrano でクールなRails アプリをデプロイします。 今回はDBにMongoDBを利用しているので、Rails側で rake db:migrateなどをする必要がない点は他の一…
どーも。 ホストOS側のChef環境がそろったので、いよいよゲストOS(Virtual Machine) に Rails 環境をインストールしていきます。今回は一つのゲストOS にRailsとMongoDB, Nginx 全て入れていきます。 今回のChef Recipes は Github においてますので適宜参照…
どーも。 普段は Rails アプリをメインに、 AngularJS などのフロントエンドばかりやっている人間が、デプロイについて学んだのでまとめます。 対象読者: アプリしか書いたことなくて、本番公開などやったこと無い人。今までHerokuで本番公開してきたけど、…
現在 AngularJS と Ruby on Rails 間の認証の仕組みを実装しようとしている。 この際問題になるのは、デフォルトのRails認証の仕組みは、HTMLベースであるため AngularJS で必要とされる JSON でのレスポンスが受け取れない、という点がある。 もちろん、Dev…
DeviseをAPI経由で叩きたい。 そのためにはフォームじゃなくて全部Ajaxで通信するので、各アクションで何のパラメータが必要かをまずまとめた。AngularJSを使い出すと、そうせざるを得ないので、ちょっとレールから外れるかな。 Prefix Verb URI Pattern Con…
今、Doorkeeper のソースを読んでOAuth の仕組みの勉強をしている。 その中で、途中いきなりローカル変数っぽいのが登場して、これがどこから呼ばれてるのかわからなくなるときがある。 メソッド内で登場するローカル変数っぽいのを見つけた場合、以下の3つ…
ネットでRails x AngularJSで調べると、AssetsにAngularJSを追加してやるのが普通的なことをよく見る。でも、この方法だとYeomanや、Grunt.jsが使えず、Rails x AngularJSでKarmaでテストを書いたりといったことができないし、AngularJSの作法にのっとった開…
やりたかったこととしては、自分のRailsアプリ内の "/auth/twitter" へアクセスさせたい、というだけのこと。HTMLに <a ref="/auth/twitter" target="_self">と、 target="_self" するだけでした。 解決するのにめっちゃ時間かかった。 まだまだだなぁ</a>
RSpec高速化の為にSporkを使っているとデータがどんどんたまっていって、テストが通らなくて困ってた。database_cleanerというGemを使うとテスト開始時にテスト用DBの中身を空にして実行してくれるらしい。Gemfile gem 'database_cleaner'$ bundle installsp…
$ rails g scaffold article subject:string body:text invoke mongo_mapper create app/models/article.rb invoke rspec create spec/models/article_spec.rb invoke factory_girl create spec/factories/articles.rb route resources :articles invoke sca…
Rails3.1からはNode.js入れないと動かないのよね。。問題CentOS使ってNode.jsを入れた後にyumでパッケージ入れようとしたらこんなエラーが出た。 Loaded plugins: fastestmirror, priorities Loading mirror speeds from cached hostfile Could not retrieve…
Railsといえばこのコンボではないだろうか?とはいえそれぞれ何ナノ?って方の為に簡単に解説。Ruby on Rails言わずと知れたWebアプリケーションフレームワークの一つ。Rubyの柔軟性を存分に活かしたその作りは開発者の無駄なコードを書く時間を最小限にとど…