Когда пользователь сохраняет форму, я хочу выполнить следующую проверку перед сохранением
if header2 is null
header2 = header1
Я не хочу добавлять проверку и останавливать действие сохранения, потому что header2 необходим только в редких случаях,Я не уверен, как заставить метод обновления в контроллере делать это.Команда для фиксации обновления:
if @entry.update_attributes(params[:entry])
Так что мне следует изменять поле params [: entry] [: header2]?Я попытался сделать это с помощью следующего кода, но он не обновляется
params[:entry][:header2] = params[:entry][:header1]
Любая помощь будет оценена.Я начинаю чувствовать, что должен обрабатывать это на стороне клиента с помощью javascript.
- РЕДАКТИРОВАТЬ: добавлено в исходное сообщение ниже -
Я попробовал приведенные ниже предложения кодерамы, и ни одна из них не работаетдля меня
validate :data_present
def data_present
self.header2 = self.header1 if self.header2 == nil
end
и
def update
@entry = Entry.find(params[:id])
params[:entry][:header2] = params[:entry][:header1] unless params[:entry][:header2].present?
respond_to do |format|
if @entry.update_attributes(params[:entry])....
SQL
mysql> select header1, header2 from entries where title = "new";
+---------+---------+
| header1 | header2 |
+---------+---------+
| Blah | NULL |
+---------+---------+
1 row in set (0.00 sec)
Я хочу иметь возможность открывать в режиме редактирования, ничего не менять (поле уже пусто) инажмите сохранить и изменить этот код.Также пытался сделать новые записи записи, и там тоже не работает.