Одна вещь, на которую следует обратить внимание, - это объединение нескольких строк, подобных этой
def custom_check_box(checked)
'<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>'.html_safe
end
В этом случае только последняя часть помечается как безопасная HTML. Убедитесь, что вы все поняли.
def custom_check_box(checked)
('<span class="my-custom-checkbox '+( checked ? 'checked' : '')+'"></span>').html_safe
end