Sinatraのあらかると

記録することで、環境構築で悩まない。

既存のアプリを最新版に対応するには。

今日の野々市は薄曇りの空です。学生さんは春休みですね。

短い休みを堪能する方もいれば、仕事に勤しむ人もいるでしょう。

今日の記事は、

Rails3.2で作成したアプリケーションをRails4で対応させるには…、

という記事を書きたいと思います。

マスアサインメント脆弱性の発覚により、

Railsはデフォルトでホワイトリスト設定なっています。

例えば、

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

depotを作成していたとしてそのまま、

rails s

と打つと、

attr_accessible` is extracted out of rails

を含んだエラーが、model/product.rbあたりで出力されています。

これを回避するために、

gem 'protected_attributes'

をGemfileに追加して、

bundle install

します。attr_accessibleの話はオンラインでわんさかありますが、

自分で記述できるならいうことはありませんが、そのまま使いたいとき、

このgemが役に立ちます。

次にエラーがあったのは、

config/enviroments/development.rb,production.rb,test.rbにありました。

参考サイトをみていると、

Rails4.0で作成したアプリのconfig/enviromentsを移すように書かれているので、

ディレクトリを変更して、

rails new depot -d mysql

として、ファイルを作成しconfig/enviroments内の3ファイルをコピーして、

移行する同じフォルダへペーストします。

同じように、

initializers/secret_token.rbもコピーして移行する同じフォルダへペーストします。

これぐらいの操作で、Rails4.0.0.beta1に移行するときのエラーは対処できるはずです。

もし、正規表現を使っていたときRails4.0では、

^は\Aを

$は\Zを

使うように参考サイトでは話しています。

困ったときに、みてくれたらと思います。

それでは、また。

参考サイト

http://qiita.com/items/929396bc915db909da26

https://github.com/rails/protected_attributes

http://bucato.jp/2013/03/rails4-0-0beta1%E3%81%AB%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%8B%E3%82%89validates%E3%81%AEformat%E3%82%82%E5%8E%B3%E3%81%97%E3%81%8F%E3%81%AA%E3%81%A3%E3%81%9F/

Gemfileの例

http://takkii.github.com/

[参考文献]

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

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

Copyright © 2007-2017 Takayuki Kamiyama. All Rights Reserved.