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

Rails4でmailtoのメールアドレスをエスケープする方法

mailtoのリンクの作成する際、Railsではエスケープしてくれる方法があって使っていました。Rails 4ではエスケープしてくれなかったので調べてみたら、Railsの拡張のGemとして切りだされていました。Rails 4で利用するために、Gemfileに以下の記述を追加しました。

gem 'actionview-encoded_mail_to'

www.techscore.com

「アイディアを実現させる最高のツール プログラミングをはじめよう」について

池澤あやかさんのプログラミングについての書籍が発売されていました。

アイディアを実現させる最高のツール プログラミングをはじめよう

アイディアを実現させる最高のツール プログラミングをはじめよう

私はこの本を読んでいないのですが、Amazonのレビューには説明が不十分等のコメントがありました。しかし、プログラミングの解説書ではなく、そもそもプログラミングに興味を持ってもらうことや、プログラミングに興味はあるけど具体的なアプローチがわからない人がターゲットなのかもしれません。

私の場合、プログラミングをはじめて勉強しようと思った時、入門書を手にとって読む前に、この本を買って読んだことを今でも覚えています。

パソコンプログラミング入門以前

パソコンプログラミング入門以前

学校でやってきた勉強には教科書があるし、学校の授業があるため、同じことを勉強している同世代がいる状況です。また、両親など身近な人に質問すれば(正解は得られなかったとしても)ある程度は答えてくれる可能性があります。しかし、プログラミングに関しては、まわりにいる人が全然経験していないこともあります。そんな時、自分がやってみようと思っている「プログラミング」というものが、どういうものなのかすらわからない、何から始めればよいかわからないという状況で、それに答えてくれる本というのは、これからプログラミングをはじめようとする人にとって、きっと忘れられない本になると思います。

プログラミング言語のコンセプトや仕様をきちんと理解できる本も大事ですが、プログラミングとはどういうものなのか、どんなことができるようになるのか、その楽しさを紹介するような本の存在も大事だと思いました。

と、本を読んでもいないのに書きましたが、私の言いたいことは以下のAmazonのレビュー(この人は星5にしている)と同じです。

内容については、やや説明しきれていないところがあると思うが、入門書としてはこれでありだと思う。
あくまでプログラミングの世界に「いちばん最初に」興味をもつための一冊だろう。

Turbolinks環境でmetisMenuを利用する方法

RailsではデフォルトでTurbolinksが有効になっていますが、Turbolinksを利用すると他のJavascriptの挙動が意図したとおりにならない場合があります。metisMenuも、サンプルコードをそのままTurbolinksを有効にした環境で実行すると、動作しません。

サンプルコードでは以下のようになっていました。

$(function() {
    $('#side-menu').metisMenu();
});

以下のように変更すると、Turbolinks環境でもmetisMenuが動作します。

$(document).on('page:load', function () {
    $('#side-menu').metisMenu();
});

stackoverflow.com

Railsでデータベースと連携しないモデルを作成する方法

RailsをはじめとするMVCフレームワークでは、データに関する様々な処理はモデルに記述します。モデルはデータベースのテーブルと対応することが多いのですが、処理ロジックだけを記述したモデルを作成することもあります。

以下のコマンドでモデルを作成すると、自動的にmigrationファイルも作成されます。

$ rails g model モデル名

migrationファイルを作成したくない場合は--skip-migrationオプションを指定します。

$ rails g model モデル名 --skip-migration

Rubyで日本語表記の日付からDateオブジェクトを生成する方法

スクレイピングするプログラムを書いていて、日本語表記の日付からDateオブジェクトを生成したいときがありました。Date.strptime()で簡単に記述することができました。

requrie 'date'
string = '2015年4月19日'
transaction_date = Date.strptime(string, "%Y年%m月%d日")

qiita.com

Debian 7.8にRMagickをインストール

Debian 7.8にRMagickをインストールしようとするとエラーが表示されたので、以下のコマンドで依存関係を解決しました。

$ sudo apt-get  install libmagickcore-dev libmagick++-dev
$ sudo gem install rmagick

watarisein.hatenablog.com

GAE/GoでGojiを利用する方法

GAE/GoでGojiを利用したいと考えてサンプルコードを動かしてみました。正常に動作しなかったので調べていたら、以下に解決方法がありました。

stackoverflow.com

package main

import (
    "fmt"
    "net/http"

    "github.com/zenazn/goji"
    "github.com/zenazn/goji/web"
)

func index(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "index page")
}

func hello(c web.C, w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, %s!", c.URLParams["name"])
}

func init() {
    http.Handle("/", goji.DefaultMux)
    goji.Get("/", index)
    goji.Get("/hello/:name", hello)
}

とりあえずこれで動いたので、開発を進めてみようと思います。