Как передать переменную из контроллера в представление снова в контроллер в Rails? - PullRequest
0 голосов
/ 16 апреля 2020

Если у меня есть переменная массива @mis_clases в контроллере:

bloques_controller

def new
  @bloque = Bloque.new
  @mis_clases = Array.new
end

И я пытаюсь передать его для просмотра, чтобы заполнить его предложениями:

форма. html .erb

<div class="card-body">
  <%= form.fields_for :clases do |clase| %>
    <%= render partial: 'clase_fields' %>
    <% @mis_clases << clase %>
  <% end %>
</div>

И доступ к нему обратно в контроллере:

bloques_controller

  def create

    @bloque = Bloque.new(bloque_params)

    @mis_clases.each do |clase|
      # Do something
    end

    ...

  end

Я хочу снова получить доступ к переменной когда я сохраняю форму, но она выдает эту ошибку: enter image description here

1 Ответ

1 голос
/ 16 апреля 2020

Имена instance variable могут немного вводить в заблуждение, но вы должны помнить, что каждый новый запрос к контроллеру переходит к новому экземпляру класса контроллера, поэтому даже если вы создаете @mis_clases в #new, при достижении #create появляется новый экземпляр без каких-либо установленных переменных и не имеющий ничего общего с последним, кроме имени класса. Вы должны передать переменные как значения полей в форме.

...