как изменить последний набор атрибутов во вложенном поле рельсов - PullRequest
0 голосов
/ 12 января 2020

Хорошо, поэтому в приложении rails, которое я делаю, у меня есть модель, которую необходимо настроить перед сохранением в контроллере. Проблема в том, что я не хочу, чтобы каждый вложенный атрибут, который я мог изменить, имел эти изменения, только последний (только что созданный).

Я пытался использовать теги формы вместо того, чтобы полагаться на объект формы (изменяя индекс атрибута на что-то вроде нового, думая, что я смогу легко получить к нему доступ), но он не проходит через сильные параметры и, следовательно, не сохраняется, когда я выполняю my_model.update(permitted_params). Это потому, что я хочу иметь возможность обновлять существующие записи, но при желании создать новую (только одну) с некоторыми атрибутами, которые необходимо настроить (в контроллере, который есть).

Заранее спасибо ...

1 Ответ

0 голосов
/ 13 января 2020

Я не уверен, правильно ли я понимаю вашу проблему, но я отвечаю в надежде, что это так и поможет вам, но, пожалуйста, будьте более конкретны c и поделитесь соответствующим кодом для лучших ответов.

Решение из того, что я понял:

Вы можете получить доступ к параметрам в контроллере и установить для них условие, например:

  def create               # or update
    if params[:your_model][:the_attribute] == your_condition
      # You can manually edit params here before saving.
      param[:your_model][:the_attribute] = your_change
    end
    @your_model = permitted_params
    @your_model.save
  end

Если вы хотите передать что-то, что повлияет на ваше состояние, вы должен будет разрешить это в разрешении действия. Насколько я знаю, другого пути нет.

...