Я пытаюсь использовать простую форму с драгоценным камнем кокона, чтобы вложить формы детей в форму родительского класса.Rails - Cocoon Gem - заполняющий внешний ключ id
У меня есть модели для предложения и подачи.
Ассоциации являются:
Предложение
has_one :pitch, inverse_of: :proposal
accepts_nested_attributes_for :pitch, reject_if: :all_blank, allow_destroy: true
Pitch
belongs_to :proposal, inverse_of: :pitch
В моей форме заявки, у меня есть:
<%= f.simple_fields_for :pitch do |f| %>
<%= f.error_notification %>
<%= render 'pitches/pitch_fields', f: f %>
<% end %>
<%= link_to_add_association 'Pitch', f, :pitch, partial: 'pitches/pitch_fields' %>
В мой контроллер предложения, у меня есть :
def new
@proposal = Proposal.new
@proposal.build_pitch
# authorize @proposal
end
def edit
@proposal.build_pitch unless @proposal.pitch
end
def proposal_params
params.require(:proposal).permit(:title, :description,
pitch_attributes: [:id, :problem, :solution, :remark, :_destroy ])
end
Смолы/_pitch_fields.html.erb имеет:
<div class="nested-fields">
<div class="form-inputs">
<%= f.input :problem, as: :text,
# :label => text_for_problem(current_user, @pitch.proposal),
:label => 'What issue does this proposal address?',
:input_html => {:rows => 10} %>
</div>
Когда я сохраняю все это и попробовать его, форма нагрузки и я могу заполнить форму, но внешний ключ для proposal_id экономит ноль.
Если я пытаюсь изменить форму, я получаю сообщение об ошибке, которая говорит:
Couldn't find Pitch with ID=5 for Proposal with ID=10
Когда я пытаюсь:
pitch.errors.full_messages
NameError: undefined local variable or method `pitch' for main:Object
Что мне нужно сделать для того, чтобы заставить proposal_id атрибут в таблице тангажа, которая должна быть установлена с идентификатором предложения?
Вы получили ошибку при сохранении формы после редактирования? – nathanvda
да - это правильно – Mel