если я правильно угадал, у вас есть определенные действия, которые вы хотите выполнить, когда у вас есть другой случай для accept
, и если accept ложна, shots
и challenge_msg
должны быть nil
это можно сделать несколькими способами
чтобы сделать это в представлениях, возможно, с помощью некоторых сценариев JavaScript, вы можете очистить и скрыть поля для shots
и challenge_msg
и отправить форму соответственно
или в контроллере, вам придется установить shots
и challenge_msg
на ноль, выполнив что-то вроде:
if params[:challenge][:accepted] == "0"
params[:challenge][:shots] = nil
params[:challenge][:challenge_msg] = nil
end
@challenge.update_attributes(params[:challenge])
или в модели, вы можете сделать это с помощью обратных вызовов, таких как before_save, чтобы установить shots
и challenge_msg
в ноль перед сохранением, если accept
равно false
просто несколько предложений по улучшению вашего кода, надеюсь, это поможет =)