woshidan's blog

そんなことよりコードにダイブ。

Ruby on Rails

urlヘルパを使ってプロトコルがhttpsのurlを吐き出させたい

なんか調べてたら、Railsのurlヘルパーでhttpsの指定ができる、という話を見かけて、よく分からなかったので調べてみました。 前もって把握していた情報は *_urlヘルパは、完全URIを返す *_pathヘルパは、パス以下を返す だったので、これじゃなんともいえな…

ActiveRecord::Baseのサブクラスでhas_manyと書いたとき

なんかいまいちだけど、置いとこう。。 まとめ has_manyメソッドを書くと、has_manyメソッドに与えたパラメータを元に、 has_manyのアソシエーションのメソッドのマクロ名などが登録されたクラスのインスタンスをFactoryPatternっぽい感じで作り、 そのイン…

Rails4とMinitestで複数DBを使った場合のテスト設定について

Rails 4 複数DB テストで検索して、RSpecばっかり出てきて、ぽよんとしたので書きます。 書いてみて当たり前の結果だったのでまたぽよんとしてますが。。 とりあえず、Rails4とMinitest(ActiveSupport::TestCaseはMinitest::Testのサブクラスなんですね)にて…

Rails4系に組み込む形でBackbone.jsのテストを自動化してみたい(SinonJS+Chai+Mocha+Karma)

javascriptのテストを一度きちんと自動化してみたいなと思っていたのですが、Railsを組み合わせる場合はjavascript単体でテストしてます。というものがなくて、サーバサイドからテストを書いてある場合が多いです。 結局は統合テストも書いた方がいいんです…

Railsをかじったことがある人がFuelPHPのプロジェクトをざっと把握しようとしたときのメモ

急遽FuelPHPのコードを読む必要に駆られたので、てきとうすぎるから詳しい人から怒られるかな、と思いつつ、http://fuelphp.jp/docs/1.7/index.htmlを読みながらざっとメモしました。1.8まで出ているのですが、バージョンが1.7なのは読むべきコードが1.7だっ…

さくらVPSのサーバ設定作業まとめました。(CentOS+Apache+Passenger+MySQL+Rails4+capistrano3)

書いても書いても終わらないから、もう終わらないかと若干思いましたが、無事終わりました。 とりあえず、勉強してみようという意図もあって、さくらVPSを借りてRailsが動く環境を設定してみた作業の記録をまとめました。 完結に手順をまとめた良記事は既に…

Apache+PhusionPassengerで動かす4.0系のRails(データベースはMySQL)をcapistrano3でデプロイ

以下の作業はこれまでの作業記事の作業をこなしていることが前提なので、これだけ読んで作業しても多分エラーでます。とりあえず、自分が出したエラーはhttp://woshidan.hatenablog.com/entry/2015/01/02/031942にまとめました。あまりにも試行錯誤しすぎて…

Apache+PhusionPassengerで動かす4.0系のRails(データベースはMySQL)をcapistrano3でデプロイしたときのNG集

作業順=エラー出した順だったので、そのまま書くとへんてこになりすぎるため、作業まとめは、後で依存関係等含めて作業を整理した形で書いています。 ただ、せっかくなので、エラーメッセージ・警告メッセージとその対処も書いておきます。検索して使ってく…

CentOSにRuby関係のソフトウェアをインストール

見返していて思ったんですが、Passengerを入れるにはrubyを入れておかないと行けないので、ここの作業はPhusion Passengerの作業より先にやる必要がありますね(おい)。半月前は(今よりもっと)、エラーメッセージが出るたびに、CentOSに言われた通りに作業し…

Apacheが動いているのにWEBrickも動かしちゃった時のassetsの話2

もう、収集つかなかったし失踪したいな、と思っていました。(あと、「サーバ構築の実際が分かるApache実践 運用/管理」にVirtualHostについてほとんど記述が無かったのでおこ。 キャッシュとかパフォーマンスのチューニングとかネットに載ってなさそうなこと…

Apacheが動いているのにWEBrickも動かしちゃった時のassetsの話1

Apache+Phusion PassengerでRailsがすでに動いているのに、ポート番号3000でWEBrickをわざわざ起動させてしまいassetsが取得できなくて焦った時の小話。そのときは、assetsが部分的に読み込めたり読み込めなかったりしたもので意味が分からなかったです。 ま…

railsのアセットパイプラインで特定のフォルダをprecompileさせる

development環境で動かしているときはいいのですが、production環境で動かすときは、以下の設定にしていたので、 自分は全部のjsをプリコンパイルする必要がありました。しかし、単純に、application.jsに と書いておくと、AngularJSのResourceやModelのコー…

Webさーびす開発してました

10月末日にインターン先を出てから、 自己分析の沼にはまったり、webさーびすを開発したりして暮らしていました。 一応、テスト版として動作するところまで行ったので、いったん開発作業は休憩して、まとめておこうと思います。 開発していたのはこれです。 …

FactoryGirlとfixturesを比べてみる

ブログより書くべきものはあるのだけれど、バイオリズム的にそろそろブログ書きたいというか、インターン先の業務でFactoryGirlについて調べ直して以来、 どうしてもちょっと書きたい病に襲われていたのでFactoryGirlとfixturesについて書きます。 fixtures…

AngularJSからRails 4.0へHTTPリクエストを投げるとき詰んだこと

RailsのCSRF対策の仕組みについて - Programming log - Shindo200 を読んでました。 恥ずかしいから、張り切って書かない。 Rails側で protect_from_forgery with: :exception と設定していてInvalidAuthenticityToken エラー が発生 CSRFトークンをヘッダー…

サーバからのレスポンスのHTTPステータスコードは200のはずなのにAngularJSの$httpの.errorコールバックが呼び出される

Jqueryのバージョンは1.9, AngularJSのバージョンはv1.2.12。 詰んだ点 Railsでは render :status => 600などのようにHTTPステータスコードを制御できる。だから、 Rails側 def update render :status => 200 end と書いておけば angularJS側 $http({ method…

redirct_to :back で前のページへ戻ると、それに関連して。

redirct_to :back で前のページへ戻る # in controller redirect_to :back # in view link_to :back で前のページに戻れる。導線がたこ足みたいなページでとりあえず前のページに戻るボタンがあったら便利だな、とか。(もしかしたらそれはそもそもの設計を考…

FactoryGirlのinheritanceやtransientの確認をする

他にもいろいろ復習したり、しなかったりする。 直近で言うと、もすこしデータベースとlinuxの勉強をしたい感じあります。 今回はすこし面倒くさかったので、コードは <a href="https://github.com/thoughtbot/factory_girl/blob/master/GETTING_…

FactoryGirlのアソシエーションの使い方を確認する

テスト駆動開発についていまさらでもなんでも読んでいる方がいたので、自分もFactoryGirlについていまさらでもなんでも確認する。 とにかく少しでも簡潔に速くテストが書けるようになればいいんだよ。なお、動作確認用のテストはrspecではなくてminitestです…

RailsのコントローラやビューのテストをMinitestでやる

既にある気がするのだけど、RailsのテストをMinitestでやっていて、モデルのユニットテストはまだし、コントローラとかビューとかをテストするときどうするのかな、と思ったので、 これらのテストのときに使うメソッドを自分用にメモする。 ここに書いてない…

RasilでcsvやExcelのデータを読み込んでデータベースに保存する

先週は少しぐれていたのですが、今週は親知らずと戦っていました。 人生は戦いです。 次は戦いたくないので口腔外科に行きます。 さて、テスト用のデータを一気に入力したいとき、正直Excelやcsvからデータを読み込めると便利だし、 まだまだなんちゃって情…

RailsのActiveRecordについて

今週つまずいたことや、これ知らなかったんかいってことをメモしておく。 項目 whereで範囲の検索をする joinsを使う 表結合について where句で結合先のテーブルの値を使う ActiveRecord::Calculationsを使う whereで範囲の検索をする Item.where(price: 100…

Railsで当日の日付を使った関数のテストをする

今週テストを書いていて、地味に引っかかっていた……。 Rails 4.1 + Minitestのテストでシステムの日付を気にする関数のテストがしたかったのです。 Date.todayの日付を固定したい [Ruby on Rails]Date.todayとかを使っている箇所をテストする方法 | GENDOSU@…

パンくずリストをURLから自動生成する

意味があるか、どうかじゃない。だけど、書いてみて、正直手動の方が早い気がする。 概要 request.urlでいま見ているページのURLを受け取って、そのURLからパンくずリストを生成するためのURLと見出しが組になっている配列を返すための関数郡と、 その返り値…

Sublime Text2にプラグインを入れる 他

いろいろ小ネタ。 Sublime Text2にプラグインを入れる プラグインをダウンロードしてきて、Sublime Text2>Packagesフォルダに入れる(トップめメニューのSublime Text2>Preferences>Browse Packageから開く事も可能) Sublime Text 2を起動してcommand + shift…

Rails チュートリアルでstylesheet_link_tagの行が止まる

チュートリアルの5章で'bootstrap-sass'のgemを入れてもBootstrapのcssが反映される様子は無いし、さらに進めていったら、custom.css.scssを足したあたりで、以下のようなメッセージがでて止まりました。 症状 検証用アドレス http://0.0.0.0:3000/static_p…

Railsチュートリアル まだ自信が無いことに自信があるところ

チュートリアルで自信の無い事を書き出しておく。書き出せる程度には(自覚が)減りました。朝起きて勉強した方がいい気がする。 先週はいろいろ文字通りmacのメモにまとめながら読んだり書いたりしてたのに、ブログにまでまとめる気力が無い。 form_forとform…

Facebookで認証したりユーザー情報を登録したりしてみたかった

「Facebookで認証+アクセストークンを使ってユーザーの情報を取得して、 ユーザーが所得する学校や会社でグループを作って所属させる」 ということをやりたくて、JavaScriptやKoalaとか調べてたんだけど、 JavaScriptはFacebookごとログアウトするし、 Koal…

RspecのテストをSublime Text上でやる

テスト駆動開発をするなら、テストが簡単に行える状態のほうがよいのだけれど、 テストを自動的に行うGuard用のgemを買う気になれなかったので、 sublime上で出来ないかなと思いつつ、そのまま読み進めていたらチュートリアルにSublime Text上で編集中のファ…

これだけは読んでおきたかったRails関連資料

一回チュートリアルをやっても、なんかはっきりしなかったかわいそうな人(自分)のメモ用。 必要になったときに必要になった部分だけ読む。 基本的に日本語。余裕ができたり不都合が生じたら英語のドキュメントへ飛べばいいと思う。 復習がてら随時足す。 rou…