Неожиданный откат после сохранения формы

У меня куча проблем с сохранением формы с вложенными атрибутами. Я работаю с двумя моделями Submission а также Tag, каждый Submissionhas_one :tag,

Проблема, с которой я сталкиваюсь, заключается в том, что при отправке формы я получаю "откат", и данные не сохраняются:

Processing by SubmissionsController#create as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"XSGZaJ1nR2MbkJJZS/Ftkb9jefb9FLOAJPA1nYbG/AIrVJYb93DtPxc7fzhUFt9uSnzzcNGqkMTSz/jFsFejHA==", "submission"=>{"domain"=>"test", "tag_attributes"=>{"tag_text"=>"Junk Science", "notes"=>"test"}}, "commit"=>"Submit"}
   (0.1ms)  BEGIN
   (0.1ms)  ROLLBACK
  Rendering submissions/new.html.erb within layouts/application
  Rendered submissions/_form.html.erb (10.6ms)
  Rendered submissions/new.html.erb within layouts/application (11.8ms)
  Rendered shared/_navbar.html.erb (2.7ms)
Completed 200 OK in 2276ms (Views: 2269.6ms | ActiveRecord: 0.2ms)

Мой контроллер выглядит следующим образом:

  def new
    @submission = Submission.new
    @tag = @submission.build_tag
  end

  def create
    @submission = Submission.new(submission_params)

    if @submission.save
      redirect_to root_path, notice: "Thank you for your submission."
    else
      render 'new'
    end
  end

  private

  def submission_params
    params.require(:submission).permit(:subtitle, :domain, :type1, :type2, :type3, :website_type, :user_id, :notes, tag_attributes:[:tag_text, :notes])
  end

и моя форма выглядит следующим образом:

<%= simple_form_for @submission, defaults: { wrapper_html: {class: 'form-group'}, input_html: { class: "form-control" }} do |f| %>

    <%= f.input :domain, required: true, input_html: {class: "form-control"}%>
    <%= f.simple_fields_for :tag do |tag| %>
      <%= tag.input :tag_text, collection: source_type %>
      <%= tag.input :notes %>
    <% end %>

    <%= f.submit "Submit", class: 'btn btn-primary'%>
<% end %>

Спасибо за любые предложения.

Обновление 1: вывод logger.debug @submission.errors.inspect как следует:

 #<ActiveModel::Errors:0x007ff49e5f8e90 @base=#<Submission id: nil, domain: "test", type1: nil, type2: nil, type3: nil, website_type: nil, user_id: nil, notes: nil, created_at:     nil, updated_at: nil>, @messages={:"tag.submission"=>["must exist"]}, @details={"tag.submission"=>[{:error=>:blank}]}>

Есть много пустых полей под submission но он не начинает подбрасывать, пока я не попытаюсь добавить вложенные атрибуты.

Обновление 2: мой Tag Модель выглядит следующим образом:

class Tag < ApplicationRecord
  belongs_to :submission
end

мой Submission Модель выглядит следующим образом:

class Submission < ApplicationRecord
    has_one :tag
    accepts_nested_attributes_for :tag
end

1 ответ

Решение

В конечном счете, я просто вернул версию rails на Rails4 и все остальное. работал.

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