久々の投稿です.
pryやpry-rails,便利ですよね.RailsはActiveRecordでデータ制約を多く記述する関係で,昔Webアプリを書いていたときほど直接SQLを叩いてデータを修正することが少なくなりました.運用上一時的なコードスニペットを走らせたい時なんかは,テキストエディタでコードを下書きして,
$ bundle exec rails c
してRubyのコードからデータを修正したりします.便利.
ただ,今回100件くらいあるデータをpry-rails経由でコピペして突っ込もうとしたらうまく行きませんでした.原因はpryのデータ表示機能でした.
具体的にはこんな感じのコードを書いていました.
data = [] data << {:field_1 => 'abcde', :field_2 => 10, :field_3 => '2727291'} data << {:field_1 => 'fghij', :field_2 => 200, :field_3 => '12177'} # more data data.each do |d| SomeModel.new d d.save! end
すると,30件くらいまでは問題ないのですが,それ以上のデータになるとコンソールにコードをコピペしてもsyntax errorが出てしまいます.pryが1行評価する毎に評価結果の値をコンソール出力するのですが,データが大きいと値の表示が1ページに収まりきらず,ページャが起動してしまいます.コピペの場合,文字列のコピペの間にページャの起動が挟まって,結果としておかしなデータがpryに渡ってしまうわけですね.
この問題は以下のコードで解決しました.(参考:https://github.com/pry/pry/wiki/Customization-and-configuration)
Pry.config.pager = false
これでページャが無効になります.
これさえ覚えておけば,ken_all.csvみたいなデータを一次変数に格納したり評価しても大丈夫ですね!