У меня есть индекс, который отображает список «лиц». У меня также есть возможность редактировать атрибуты каждого человека из представления индекса.
Я пытаюсь найти способ вызвать ошибку при обновлении и сосредоточиться на указанных c входных данных, которые не работают. Я делал это раньше, когда это было просто представление редактирования, которое указывает на действие обновления, но я не уверен, как это сделать, когда все находится в представлении индекса.
В приведенном ниже фрагменте редактирования отображается форма, которая направляет к действию обновления.
<% @persons.each do |person| %>
<div class="col-sm-18 center-block">
<div class="card-container" style="margin-top: 100px;">
<div class="card-header">
<div class="flex space-between">
<p class="font-weight-500" style="font-size: 16px;"> <%= "person" %> </p>
</div>
</div>
<div class="card-contents">
<div class="row">
<div class="col-sm-10 col-sm-offset-4">
<%= render 'edit', person: person %>
</div>
</div>
</div>
<div class="card-footer"></div>
</div>
</div>
<% end %>
# frozen_string_literal: true
module Family
class PersonsController < FamilyApplicationController
def index
@persons = Person.all
@person = Person.new
@address = @person&.build_address
end
def create
if Person.create!(person_params)
redirect_to persons_path
flash[:notice] = "person created"
end
end
def update
@person = Person.find(params[:id])
if Person.update(person_params)
redirect_to persons_path
flash[:notice] = "Person updated"
else
#Code needed here
end
end
private
def person_params
params.require(:person).permit(:name,
:phone_number,
address_attributes: %i[line_1 line_2 line_3 town county postcode country])
end
end
end