日本語自由帳

分かりやすく、伝わりやすく。

Rails触ってて引っかかったこと

はじめに

RailsによるアジャイルWebアプリケーション開発 第4版

RailsによるアジャイルWebアプリケーション開発 第4版

現在この本を使ってRailsのサーバーサイドのお勉強をしています。 途中でいくつか引っかかったところがあったので、今のうちにメモしておこうかと思います。

Railsの更新

hsmdlily.hatenablog.com

以前にTwitterbotを作ろうとしてから幾月か時が経ってしまったのでRailsのアップデートもせずに、Railsアプリケーションを作成しようとしてました。すると以下のようなエラーが起こりました。

Warning: Running `gem pristine --all` to regenerate your installed gemspecs (and deleting then reinstalling your bundle if you use bundle --path) will improve the startup performance of Spring.

まぁ言われたとおりに行ったら直りました。

sudo gem pristine --all

一旦初期状態に戻して綺麗にしている感じ。でも何も考えずにやるのも危険だなぁ。

正規表現

商品の写真のURLを確認する正規表現として、本にはこのように書いてあります。

  validates :image_url, allow_blank: true, format: {
    with:    %r{\.(gif|jpg|png)$}i,
    message: 'はGIF,JPG,PNG画像のURLでなければなりません'

その通りにして

rake test

したら怒られました。

ArgumentError: The provided regular expression is using multiline anchors (^ or $), which may present a security risk. Did you mean to use \A and \z, or forgot to add the :multiline

どうやらRails4.0では正規表現が厳しくなったそうです。

Rails4では正規表現が厳しくなった。 - Programmer_Mixin_Conductor's Blog

ということでこれも指示どおりに「$」を「\z」にすることで解決しました。

おわりに

短めですが、忘れない内に自分が経験したことを書かないと忘れてしまうし、勉強にならないので、ド素人のRails日記を少しずつでも書こうと思います。