Я использую Ruby on Rails для создания формы, имеющей флажок;я пытаюсь добиться следующего поведения:
- пользователь загружает форму
- , пользователь заполняет форму и включает флажок
- когда "Нажмите кнопку «Отправить», некоторые действия будут выполнены (потому что флажок установлен)
- если пользователь снова загрузит форму, флажок будет снят, поэтому никакие действия не будут выполнены
- пользователь может снова заполнить форму с новыми значениями и при желании отправить их
Я наблюдаю такое поведение, что на шаге 4 действия выполняются снова сразу же, когда формазагружен, и это нежелательно, потому что эти действия уже были выполнены на шаге 3. Для информации, выполняемые мной действия также встроены в тот же файл частичного представления, что и сама форма.Это, вероятно, неправильный способ сделать это, но он работает нормально, если речь идет о выполнении действий.
Я пробовал много вещей и пробовал все комбинации отмеченных без галочки, единственная, которая отображала окнонепроверенным является :checked=>"unchecked"
, но поведение по-прежнему не такое, как я.
Каков наилучший способ реализации этого сценария?
Флажок настроен следующим образом:
<%= f.label "CheckToApply" %>
<%= f.check_box :CheckToApply, :id=>"CheckToApply", :name=>"CheckToApply", :checked=>"unchecked", :value=>"0" %>
и компилируется в следующее:
<label for="test_Check to Apply">Check to apply</label>
<input name="CheckToApply" type="hidden" value="0" /><input id="CheckToApply" name="CheckToApply" type="checkbox" value="1" />
Я пробовал много способов, таких как установка значения в частичном представлении
if @test.CheckToApply == 1
@test.CheckToApply=0
<... more actions are added here ...>
end
Я тестировал печатьючто-то внутри раздела «если конец» и, кажется, работает хорошо, но это не сработало, потому что каждый раз, когда форма загружается, действия выполняются снова, прежде чем пользователь выбирает новые значения.