Ruby в форме Rails для обновления модели с добавлением / вычитанием входного значения к текущему значению - PullRequest
0 голосов
/ 27 апреля 2020

Я хочу добавить форму для обновления модели, добавив входные значения к текущим значениям, но печатая только входные значения. Скажем, у нас есть: cars = 50 и пользовательский ввод 30. Я хочу напечатать 30, а значение машины после отправки должно быть 80.

= form_for @shop do |f|
  - if @shop.errors.any?
    #error_explanation
      %h2= "#{pluralize(@shop.errors.count, "error")} prohibited this shop from being saved:"
      %ul
        - @shop.errors.full_messages.each do |message|
          %li= message

  .field
    = f.label :cars
    = f.text_field :cars
  .actions
    = f.submit 'Add cars'

Я знаю, что вопрос не очень конкретный c, но я не могу найти место для начала. Я попытался осмотреться, но не могу найти правильную комбинацию ключевых слов для поиска.

1 Ответ

0 голосов
/ 27 апреля 2020

Создайте виртуальный атрибут в вашей модели. Допустим, cars_increment

attr_reader :cars_increment

def cars_increment=(value)
  @cars_increment = value
  self.cars += value
end

Теперь установка этого значения увеличится на cars на это значение, но вы по-прежнему отображаете cars_increment, поэтому пользователь увидит, что они ввели.

Просто убедитесь, что вы используете cars_increment, а не cars непосредственно в представлении

Имейте в виду, что это столкнется с проблемами, если ваш код устанавливает значение cars_increment более одного раза для запроса или когда трафик c на вашем сайте увеличивается, и несколько запросов пытаются изменить это значение одновременно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...