Как обновить значения, которые зависят от сильных параметров - PullRequest
0 голосов
/ 27 декабря 2018

У меня есть действие (с использованием строгих параметров) в контроллере:

def home_task_params
  params.require(:home_task).permit(:subject, :description, :data)
end

Я хочу изменить данные перед записью в базу данных.Я хочу сделать что-то похожее на это:

def create
  @home_task = HomeTask.create(
    :subject => home_task_params.subject,
    :description => home_task_params.description,
    :day => home_task_params.data,
    :data => home_task_params.data,
    :class_room => current_user.class_room
  )
end

Как мне это реализовать?

1 Ответ

0 голосов
/ 27 декабря 2018

params - это объект, который ведет себя как хеш.Поэтому вы не можете читать значения из этого объекта, например params.subject, вместо этого вы должны использовать params[:subject].

. Примерно так может работать:

@home_task = HomeTask.create(
  :subject     => home_task_params[:subject], 
  :description => home_task_params[:description], 
  :day         => home_task_params[:data],
  :data        => home_task_params[:data], 
  :class_room  => current_user.class_room 
)

Или вы можете просто объединитьдополнительные значения к params:

@home_task = HomeTask.create(
  home_task_params.merge(
    day: home_task_params[:data], 
    class_room: current_user.class_room
  )
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...