Я использую драгоценный камень кокона, чтобы попытаться добавить объект, принадлежащий другому, с вложенными полями. У меня есть «user_resolution», у которого много «этапов». Я установил ассоциации соответственно в обеих этих моделях. По какой-то причине вехи не создаются, однако, если я добавлю их вручную в базу данных, я могу ее успешно обновить. Я могу динамически добавлять поля и удалять их, используя драгоценный камень кокона, но это все. Когда я нажимаю «добавить веху», он перенаправляет меня на представление представления пользовательского разрешения и выдает сообщение об успешном обновлении разрешения пользователя, никаких ошибок не выдается, но вехи (ы) не создаются.Вложенные поля не добавляются в форму submit
user_resolution.rb
has_many :milestones
accepts_nested_attributes_for :milestones, reject_if: :all_blank, allow_destroy: true
milestone.rb
belongs_to :user_resolution
Я настроил вложенную форму в режиме редактирования, как теперь я только хочу, чтобы пользователи добавить веху к разрешению в виде редактирования.
user_resolutions/edit.html.erb
<%= form_for(@user_resolution) do |f| %>
<div class="field">
<%= f.label :name %><br>
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :description %><br>
<%= f.text_area :description %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<%= f.fields_for :milestones do |milestone| %>
<%= render 'milestone_fields', f: milestone %>
<% end %>
<%= link_to_add_association 'Add Milestone', f, :milestones %>
<%= f.submit "Add Milestone" %>
<% end %>
_milestone_fields.html.erb
<div class="nested-fields">
<div class="field-row">
<%= f.label :name, 'Name' %>
<%= f.text_field :name %>
</div>
<div class="field-row">
<%= f.label :description, 'Name' %>
<%= f.text_area :description %>
</div>
<div class="field-row">
<%= f.label :severity, 'severity' %>
<%= f.check_box :severity %>
</div>
<div class="field-row">
<%= f.label :target_date, 'target_date' %>
<%= f.date_select :target_date %>
</div>
<%= link_to_remove_association 'Remove', f %>
</div>
разрешенных параметров в пределах контроллера Разрешения пользователя также содержать следующие
milestones_attributes: [:id, :user_resolution_id, :name, :description, :target_date, :severity, :complete, :_destroy]
Вехи сами не имеют взглядов, у них есть только модель и контроллер. Контроллер создать действие (который я не уверен требуется для вложенных форм) содержит стандартный следующий код
def create
@milestone = Milestone.new(milestone_params)
if @milestone.save
redirect_to user_resolutions_path,
:flash => { :success => "You successfully created a milestone" }
else
redirect_to new_milestone_path,
:flash => { :error => "Oops something went wrong. Try again." }
end
end
Я был столь информативна, как я могу, но если вам нужно что-нибудь еще, дайте мне знать. Спасибо, парни.
У вас есть два подарка в вашей форме. используйте только последний и удалите другой. Также опубликуйте журнал регистрации, чтобы показать полные параметры. –
Вы можете публиковать параметры, которые вы получаете от запроса на отправку? –