Не эксперт по этому вопросу, но для options
это может быть связано с тем, что вызывающий код использует метод merge
для объединения того, что вы передаете, с предполагаемыми значениями по умолчанию; установка nil
просто удалит все опции. Я не уверен насчет html_options
, но это может быть что-то подобное.
html_options
может вызвать блок и определить что-то, чтобы проверить, есть ли у него хэш или нет. Как я уже сказал, я не эксперт, но может быть поэтому. Я только что проверил на Ubuntu VM и, согласно irb, пустой хэш оценивается как true
, поэтому может быть поэтому. Код вызова, вероятно, использует блок со строкой:
if html_options
# do stuff
end
так что nil
по умолчанию, потому что код будет выполняться и, вероятно, даст вам нулевую ошибку с пустым Hash