Rails
なぜできないのか Capistranoで先日の環境にデプロイを自動化しようとしたところうまく行ってないお話です。 Capistranoでデプロイするとこうなる ひとまずCapistranoをセットアップして、 cap production deploy と打ち込むと、だいたい次の4つのことが起き…
とりあえず要所をまとめると テンプレートを作ってヘルパーメソッドの中でrender partial: 'path/to/template', locals: { param: scan(&block) } です。 なんでこうしようと思ったのか レイアウトのように大規模ではないものの、よく出てくるような枠部分を…
Gemを追加するだけで素っ気ないあのエラー画面が超クールで高機能になります。 こんな感じに。 スタックトレースが見やすくなり、エラーが起きた周辺のコードがシンタックスハイライト付きで表示されます。 さらに、リクエストパラメータやセッションの値は…
おとなしく同じ名前空間にモデルがあるとは限りません。たとえば、AwesomeLibrary::AwesomeModelという名前のモデルがあってそこと1:Nの関係を持たせたいとしましょう。 普通は has_many :awesome_models とかやるところですが、この場合はAwesomeModelを探…
この手の記事を書くのは久しぶりですね。Bootstrap3に乗り換えると困ったのがdatetime_selectやdate_selectで生成した日付の入力欄。 Bootstrap3はフォームの入力欄のサイズをその外側にあるタグで設定するので厄介者です。 <div class="col-lg-4"> <input type="text" class="form-control"> </div> まあこんな感じです。ところが…
るびまや先人たちのブログを参考に、Turnipなどを使ってエンドツーエンドテスト(E2Eテスト)を書く環境を整えました。 Turnipってなに? これです。 というのは冗談で、冒頭にあげた通りE2Eテストを自動化するツールです。ちなみにこの手のライブラリの先輩で…
昨日はもう出歩きたくないようなひどい雨風でしたが、今日は打って変わっていい天気です。涼しくなってきて夏も終わりが近いと感じます。 さて、今回は「多対多の関連を持つデータをRailsでうまく保存したく」なりました。 データを表示する段階の問題 newや…
Railsだと「アセットパイプライン」なるものでやれるそうです。 今までお手伝いしてきたアプリでは、何の気無しにJavaScriptをCoffeeScriptで、CSSをSCSSで書いてきたのですが、どうやらこれもアセットパイプラインを暗に使っていたようです。 今回はSCSSの…
いくつかやりかたがあります。 1. 静的ファイルで十分な場合 public/404.html、public/500.htmlというファイルを置くだけです。ね、かんたんでしょ? 2. レイアウトを使いまわしたい場合 まずはconfig/routes.rbを修正します。 MyApplication::Application.r…
そうさ…意味なんかない。"上"のヤツらは裕福な生活を送りながら、くだらない思想をぶつけあって、戦闘に明け暮れている。俺達は、そのしわ寄せでこんな生活を……強いられているんだッ!(集中線) 強いられているんだ!とは (シイラレテイルンダとは) [単語記…
今度は「ログインするときにTwitterみたいにユーザー名とメールアドレス両方受け付けたいよね」みたいな話が持ち上がったので対応してみたいと思います。 ちょうどDeviseのWikiにやりかたが載っていたので、この通りやってみたいと思います。 大体の流れは、…
思ったよりも簡単です。やることをざっくり言うと、 Railsにパスを通す ルートにマウント の2つだけです。 Railsにパスを通す たとえばapp/api/以下にSinatraとかGrapeとかを置いておきたいとしましょう。そうしたら、config/application.rbに config.paths.…
ちょっとわけあって調査することになり、試しに動かしてみようと思ったらとんでもない泥沼でした。 ちなみにプラグインのリポジトリはこちらです。 pelle/oauth-plugin · GitHub oauth2のGemがインストールされていれば、例によってGemfileに gem 'oauth-plu…
DRYとは アルファベットをひと文字ずつ、または英単語のdryと同じ読み方をしますが、「乾かせ」ではなく、「Don't Repeat Yourself」の頭文字です。早い話が「重複を避けよ」ということで、データやプログラムに重複箇所があると、そこに修正をかけたいとき…
ActiveRecordでSQLのクエリーを構築していくのは手軽でいいのですが、ちょっと特殊なことをしたいときはなかなかそれだけでは難しいかできない、ということがまれによくあります。 私もここ数日あれこれ試行錯誤した結果諦めたものがあります。どんなものか…
RailsというよりかはActiveRecordの話かもしれませんが。今回もちょっとハマったのでメモです。 基本 ひとつのテーブル内でソートを完結させる場合は特に難しいことはありません。 Model.order("column_name asc") これでテーブルmodelsにあるレコードすべて…
わけあって /hoge/:hoge_id/:fugasみたいな感じのルーティングをやりたかったので、ちょっと調べていました。 基本のルーティング まず何も設定しなかった場合のルーティングです。この場合はいたってシンプル。 /:controller(/:action(/:id(.:format)))とい…
Railsで動いているアプリでなぜかログインができない。教えてもらったIDとパスワードを何度打ち込んでもログイン画面にリダイレクトされます。 POSTしたときのログを漁ってみると、 Started POST "/login/auth" for 127.0.0.1 at 2013-04-03 20:58:22 +0900 …