sets script_name to always be a string.

Closes #17615 #17616

when script_name is nil in the options hash, script_name is set to nil.

options = {script_name: nil}
script_name = options.delete(:script_name) {‘’} # => nil

Signed-off-by: Santiago Pastorino <santiago@wyeworks.com>
Add regression test case to ensure script_name as nil is not used anymore in url_for
Merge branch 'nil_script_name'