Web + Life Hack

〜True But Useless〜

ruby

めちゃめちゃ簡単なキャッシュ対策。それは「nilガード」

エンジニアの永遠の課題である速度改善。。。 そのためにサーバーを増やしたり、railsだとフラグメントキャッシュを 使ったりするかと思うのですが、 一番手っ取り早いキャッシュ対策がありました。 サンプルコード @GH ||= GrowthHack.last 意味は @GHがnil…

【Rails】Railsのバグ?joinsを使ってハマるパターン

Railsで新しい検索条件(scopeなどでjoinsを使用)を追加した時にハマりました。 最近、ハマってしかない。。。。 前提条件 shopsテーブルには「company_id」が存在する。 companysテーブルには「shop_id」が存在する。 shop_profilesテーブルには「shop_id」…

【Ruby】【Rails】へっぽこエンジニアがfragment cacheでハマって解決するまでの紆余曲折まとめ

弊社で請け負った開発の納品前に 速度に問題があるということで 急遽、キャッシュを導入することになりました。 今回はRails4でキャッシュ導入で悪戦苦闘した一部始終をご覧ください。 前提条件: Ruby/Rails g08m11$ ruby -v ruby 2.0.0p247 (2013-06-27 re…

【rails】【ruby】ActiveRecordでcount(*)の結果をsortして上位をリストアップする方法をいけてないコードで書いてみた!

なかなかやったことがなかったので備忘録がてらにメモ。 (あまり良いコードではないのは重々承知なので、やり方として覚えるという意味で。。。) やりたかった事としては ActiveRecordでcount(*)の結果をsortして上位をリストアップ です。 今回は、今月中で…

【ruby】【rails】【API】じゃらんAPIでせこせこホテル情報を取得する方法

みんな大好きAPI! web系で働いて良くAPI、スクレイピングを利用するようになりました。 例を上げると ホットペッパーAPI http://webservice.recruit.co.jp/beauty/reference.html や 楽天の商品検索API http://webservice.rakuten.co.jp/api/itemsearch/ な…

【rails4.0】【ruby2.0】link_toタグとimage_tagを一緒に使う

link_toタグとimage_tagを一緒につかいたいと思う機会がなかったというか、 今までviewを触る時はパーシャルやpathを書く事が多かったので この書き方を知りませんでした。 また、ググっても2008年といった古めの記事、 バージョン自体も古い(rails3.0系)記…

【ruby】rbenvを使ってRubyのバージョンを2.0.0-p247に設定する方法

現在、自社で運用している社内システムのステージング環境を構築する際に始めて rbenvでRubyを設定したのでその時に行ったことを纏めます。rbenvを選んだ理由としては RVMほど高機能さを求めていなかったこと、 本番環境もrbenvでRubyのバージョン切り替えを…

【ruby】【rails】先月分(月初め〜月末)を無理くり抽出する方法

今回はcreated_atを対象に先月分を抽出する方法を上げていきます。 ポイントは「無理くり」ということ。 もっとスマートなやり方があると思いますが取り急ぎ、期間内のデータが欲しい 方はぜひ、参考にして頂きたいです。 Model.where("created_at between ?…

【ruby】【rails】rubyで年齢を出力する方法

年齢を表示する時にやったことを書きたいと思います。単純にdate型、time型で合わせての引き算だと値がおかしいことになっていました。 2.0.0p247 :036 >g08m11.birthday.class => Time 2.0.0p247 :034 > (DateTime.now - 5.year) - DateTime.now => (-19720…

【rails】【ruby】rails4では当たり前?今日学んだこと(Strong Parametersなど)

今日は主にこんなことを学んだ、学び直しました。 基本 config/routes.rbに :except => [:destroy]が書かれていたら 7つの基本アクションの中で不要なアクションを指定している (この場合は「destroy」)ことを表している。 rails3とrails4での差分 名称が変…

【rails】【ruby】これは覚えたい!異なる型同士を使ってDateTime型で比較する方法

日付(今回は予約可能日)と時刻(今回は予約可能時刻)が それぞれ異なる型の変数であり、 それをDateTime型の現在時刻で比較する方法を 纏めたいと思います。テーブル定義を変えるのは大変なので 覚えておくと便利かもです。 予約可能日: @g08m11.reserva…

【Ruby】【備忘録】rvm を使ってRuby2.0.0にした時のコマンドまとめ

弊社にて使用しているRubyがこの度、 速度改善を目的にバージョンを、 「ruby-1.9.2-p320」→「ruby-2.0.0-p247」 に変更しました。その時に行ったコマンドを備忘録的に纏めたいと思います。 1・現在のrvmの中に「ruby-2.0.0-p247」がないことを確認 rvm list…

【Ruby】【rails】あなたは大丈夫?日付型の判定の違いについて。

突然ですが、railsで日付型の条件分岐を使用する際は何を使用していますか? 僕は意識せずに「DateTime.new()」を使用していました。 しかし、ソースRVでバグの温床であったことが判明しました。 結論から言うと、日本時間での日付比較は①Datetime.new()や②D…

【Ruby】【Sinatra】SinatraをHello worldしました。

今日はひょんなことからSinatraをHello worldしました。 多分、僕史上一番簡単で高速なHello worldだったと思います。 以下の前提条件付きですが。 ・gemがインストール済み(最新版) ・bundleがインストール済み(最新版) ・Rubyがインストール済み(最新版) …