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

erbでエラー

Ruby


rubyのerbで、

private method `gsub!' called for nil:NilClass

というエラーが解決せずに困っています。研究中。

Script Error
private method `gsub!' called for nil:NilClass
Backtrace
(erb):33:in `komojifree'
(erb):48:in `checkword'
(erb):84
erb.cgi:36

解決=>nilであるべきでない変数を引数にする直前に、もしnil?ならば、to_sとかしてエラーを出さなくして続行させる。その結果、その変数を作成するルーチンがうまく機能していなかった。それはそれで解決していませんが、このエラー自体は解決。具体的にはこんな感じ。

wd = thinkword(before)
if wd.nil? then
  wd.to_s
end
wd = komojifree(wd)

この例で言うと、komojifreeでエラーになったけど、ほんとのバグはthinkword()にある。パソコン上では大きな辞書をメモリーに読み込んでrandしたりeachしたりできるけど、erb上でやるときは少し制限が必要なようです。これはこれで課題。

以上