概要
タイトルの通りです
Sinatra::Base
ですでに使われているインスタンス変数になるので、これに instance_variable_set
を実行しようとするとエラーとなります
環境
- macOS 10.13.2
- Ruby 2.4.1p111
- Sinatra 2.0.0
現象
- vim app.rb
require 'sinatra'
get '/' do
val = '@env'
instance_variable_set("#{val}", [])
end
これでアプリを起動して localhost:4567
にアクセスすると TypeError: no implicit conversion of String into Integer
エラーが発生します
対応方法
val = '@env2'
などとして別の変数名を使うようにしましょう
最後に
すごいハマリました、、、
0 件のコメント:
コメントを投稿