投稿すると、セッション変数の 1 つが IE で失われます。
この Web アプリケーションは、Chrome と Firefox で完全に動作します。
エラーは次のとおりです。
NoMethodError at /
undefined method `include?' for nil:NilClass
file: welcometo.rb
location: xml_file_to_use
line: 19
エラーが発生するメソッドは次のとおりです。
def xml_file_to_use
groups = allowed_groups
#Which xml file should I write to
if (session[:location_group].include? allowed_groups[0] ) <----Line 19
......
end
ここに説明と私のコードがあります:
ユーザーがログインすると、セッション変数が設定されます。
#Check to see if the user is authorized
auth_token = Adauth.authenticate(params[:user], params[:password])
if auth_token
session[:user] = params[:user]
session[:first_name] = auth_token.first_name.tr('/"[]', '')
session[:location_group] = (auth_token.groups & allowed_groups)
redirect '/'
else
redirect '/login'
end
次に、これらのセッション値に基づいて変数を設定します。
get '/' do
if session["user"] != nil
@first_name = session[:first_name]
@groups = session[:groups]
@xml_file = xml_file_to_use
@location = location
erb :form
else
redirect '/login'
end
end
この部分は問題なく動作します。ビューで @location 変数を使用しているため、わかります。
場所の方法は次のとおりです。
#Setup Location Variable
def location
if (session[:location_group].include? allowed_groups[0] ) <-- This same code errors during a post in IE
return 'Eagan'
else
return 'Chicago'
end
end