Rails PUT не создает новую модель

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

  def show
    @finance = current_user.finance || current_user.build_finance
    render_wizard
  end

  def update
    @finance = current_user.finance || current_user.build_finance
    @finance.assign_attributes(finance_params)
    render_wizard @finance
  end

Представление get_started.html.erb выглядит следующим образом:

<%= form_for @finance, url: wizard_path, :method => :put do |f|  %>
    <div class="field">
      What's your <strong>name</strong>?<br>
      <%= f.text_field :name %>
    </div>
    <div class="field">
      What's your <strong>birthday</strong>?<br>
      <%= f.date_select :birthday %>
    </div>
    <div class="field">
      What's your <strong>zip code</strong>?<br>
      <%= f.number_field :zip %>
    </div>
    <div class="field">
      What's in between <strong>your legs?</strong><br>
      <%= f.select(:gender, Finance::Gender) %>
    </div>
<%= f.submit "Next", class: "btn btn-primary btn-lg" %>

Нажатие /finances_welcome/get_started в качестве существующего пользователя предварительно заполняет входные данные из существующей модели финансов этого пользователя и позволяет мне обновлять поля.

Однако, когда я впервые регистрируюсь, я нажимаю "Далее", и страница просто обновляется. Там нет ошибки, и новая модель Финансы не создается. (не говоря уже о том, чтобы связать эту модель с пользователем.)

1 ответ

Оказывается, мои шаги были неправильными.

Новые пользователи были перенаправлены на шаг позже, что означало, что обязательные поля пользователя в объекте Финансы отсутствовали.

Другие вопросы по тегам