Изменить. К сожалению, у этого метода есть недостатки.
- Поля не заполняются обратно после ошибок проверки и
render :xxx
- решение этой проблемы состоит в том, чтобы сделать
alias_attribute :c_ountry, :country
, но лично мне не нравится его хакерство
- Метод не работает на английской локали (по крайней мере, у меня), но работает на других локалях
Редактировать 2: В конечном итоге я решил это с помощью комбинации трех подходов, которые я описал в более общем вопросе
Исходный ответ:
Это вина HTML и в основном Chrome, а не Rails.
По состоянию на декабрь 2020 г. и Chrome 87 все вышеперечисленные решения не работали у меня, равно как и многие варианты из Интернета с autocomplete
, readonly
, onclick
, type
и т. д. обходные пути атрибутов.
Решение для предотвращения автозаполнения
Что сработало, так это не называть поля их полными именами. т.е. если у нас есть поля страна и город, то вместо этого
= f.text_field :country
= f.text_field :city
сделай это
= f.text_field :c_ountry
= f.text_field :cit_y
Затем вручную переназначьте параметры в контроллере. то есть
def user_params
params[:user][:country] = params[:user].delete(:c_ountry)
params[:user][:city] = params[:user].delete(:cit_y)
params.require(:user).permit(:country, :city)
end
Попался. Я заметил, что Chrome также запускает автозаполнение, когда находит другие слова в type
. Например, я заметил, что это вызывает автозаполнение
= f.text_field :d_istrict
пока это не запускает автозаполнение
= f.text_field :d_istric_t
person
ToTenMilan
schedule
18.12.2020