Я новичок в Rails, и я делаю свой первый проект. Кроме того, английский не мой родной язык, так что несите со мной.
Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть форма с несколькими экземплярами одной и той же модели, данные создаются правильно, но когда я пытаюсь ее редактировать, форма заполняется не так.
Я делаю приложение, чтобы проверить, все ли идет по правилам. Элементы, подлежащие проверке, находятся в вложенной ассоциации. Главы- > Подчистки- > Чеки
Каждый раз, когда отправляются проверки, создается CheckRound, и информация каждой проверки хранится отдельно в CheckResults.
CheckRounds
has_many :check_results, inverse_of: :check_round, dependent: :destroy
accepts_nested_attributes_for :check_results, reject_if: proc { |att| att['observation'].blank? }
CheckResults
belongs_to :check_round, optional: true, inverse_of: :check_results
belongs_to :check
Главы
has_many :subchapters
подразделы
belongs_to: chapter
has_many: checks
Проверка
belongs_to :subchapter
has_many :check_results
Форма отображает все главы и вложенные субчины и чеки. Каждая проверка отображает свое имя и имеет текстовое поле в качестве ввода.
Пользователь может заполнить ни один или несколько проверок.
<%= form_for(@check_round, :url => {:action => 'update', :client_id => @client.id, :project_id => @project.id}) do |f| %>
<% @chapters.each do |chapter| %>
<%= chapter.name %>
<% chapter.subchapters.each do |subchapter| %>
<%= subchapter.name %>
<% subchapter.checks.each do |check| %>
<%= f.fields_for :check_results do |result| %>
<%= check.name %>
<%= result.hidden_field(:check_id, :value => check.id) %>
<%= result.text_area(:observation, rows: 4, :id =>'obs' + check.id.to_s) %>
<% end %>
<% end %>
<% end %>
<% end %>
<% end %>
Контроллер
def edit
@check_round = CheckRound.includes(:check_results).find(params[:id])
@chapters = Chapter.includes(subchapters: :checks).where("segment_id = ?", @project.segment_id).sorted
end
Если, например, я утверждаю, что check.id = 3
имеет observation = "bad"
, когда я перехожу к редактированию, каждая проверка имеет "плохое" в своем наблюдении независимо от его идентификатора.
Я хочу знать, как я могу показать при редактировании все проверки с пустым наблюдением, но те, которые были созданы.
Заранее благодарим за ваше время!