読者です 読者をやめる 読者になる 読者になる

のぶLab.

流しのソフトウェアエンジニアの雑記帳. Android, Scala, Clojure, Ruby on Railsなど

ActiveRecordでBigqueryを使ってみる

目的 メインDB + Bigqueryの複数DBなRailsアプリケーションでActiveRecordからBigqueryにあるテーブルを参照するまでの手順。 前提として、Bigquery上のtable, recordの作成などは行っていることとします。 ここではローカル環境や外部サーバ上のRailsアプリ…

Papeclipで画像ファイル向け汎用メソッドを定義するサンプル[Ruby]

paperclipでは画像ファイル以外も添付できる。 気をつけないと画像ファイル以外のObjectからも呼ばれる危険性がある。 画像ファイルに限定したUtilityメソッドを安全に定義するための例として以下の様な実装を考えてみた。 module ImageFileDecorator extend…

Rubyでも音楽をcoding

Clojureで音楽をコーディングする記事をいくつか書いてきました。 Overtoneを使ってClojureで音楽をcoding - のぶLab. EmacsでOvertone演奏環境構築 - のぶLab. OvertoneをEmacsで演奏してみる - のぶLab. 実はSonic Piというものを使えばRubyでも音楽をコー…

scopeでmodelにDBアクセス責務を移譲

RailsではModel.where()を使っていろいろな場所で同条件のクエリを発行することが可能だが、 修正が必要になった際に複数箇所修正が必要になったり、DRYの理念に則っていない。 これらをうまく解消するために、scopeという機能を使ってクエリ発行の責務をmod…

Fat Model解消のアイディア

肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳) | TechRacho http://techracho.bpsinc.jp/hachi8833/2013_11_19/14738 ※ concernにmodelの機能を移しても本質的には何も変わっていない. どこに何があるかわかりにくく見通しが悪い状態…

zepto-railsでlink_to :method => :deleteが効かない

Railsでzeptoを使おうとして断念した記録 背景 jquery likeで軽量なzeptoを使ってRailsアプリを作成したが、 <% link_to "hoge", hoge_path, :method => :delete %> が効かなくてハマってしまった。 原因 "jquery-ujs"に相当するものがないためらしい 代替探…

Railsで1:Nのテーブルを扱う

Gemの導入 Gemfileに以下を追加してnested form gem を導入 gem"nested_form"bundle install フォーム要素を動的に追加するためのプラグインを追加 application.jsに以下を追加 //= require jquery_nested_form 使ってみる view <%= nested_form_for @projec…

日付・時刻の操作

現在時刻取得 DateTime.now 日時指定 DateTime.new(year, month, day, hour, min) パラメータ取得 now = DateTime.now now.year now.month now.day now.hour now.min 加算した値を返却 now = DateTime.now now >> 1 # 1ヶ月後 now + 1 # 1日後# 大小比較now …

RailsでBootstrap Materialを導入する

BootstrapをベースにMaterialデザインなUIを実装できるBootstrap MaterialをRailsに導入してみました Gemfileの編集 Gemfileに以下を追加します gem 'bootstrap3-rails' gem 'bootstrap-material-design' Install bundle install application.jsの編集 "app/…

Template EngineをERBからSlimに移行する方法

ERBの記述が面倒なのでもっとシンプルなものはないかと探してみると、Slimが結構良さそう 特に"%"をたくさん打たずに済むのはうれしい Gemfileの編集 Gemfileに以下を追加する gem "slim-rails" gem 'slim'そして $ bundle installとりあえずこれでOK erbフ…