Как изменить параметр перед его отправкой в ​​базу данных - PullRequest
0 голосов
/ 04 октября 2019

Я хочу изменить один из параметров в функции обновления до его обновления.

Я могу извлечь значение, выполнив: abort house_show_params[:pricing_option].inspect, но я бы хотел изменить его.

Я пробовал:

house_show_params[:pricing_option] = 5
house_show_params.update_attribute(pricing_option: 5)

И это не сработало.

Функция обновления

def update
    @house_show = current_user.house_show
    respond_to do |format|
      if @house_show.update(house_show_params)
         ......

1 Ответ

0 голосов
/ 04 октября 2019

Я бы сделал это в модели (контроллер не в том месте), используя метод write_attribute.
Например, если я хочу, чтобы мое поле company_name было удалено перед сохранением, я бы сделал(в моей модели):

def company_name=(value)
  self[:company_name] = value&.strip
end

Это было бы то же самое, что и делать (вы можете выбрать любой способ, который вы предпочитаете):

def company_name=(value)
  my_model.write_attribute(:company_name, value&.strip)
end

На этой странице показаны варианты, которые у вас есть, хотяВы должны получить ответ на свой вопрос с двумя примерами выше: https://davidverhasselt.com/set-attributes-in-activerecord/

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