Включить как существующие, так и новые вложенные объекты has_many в форму fields_for - PullRequest
0 голосов
/ 18 января 2019

Я не уверен, как правильно задать этот вопрос, поэтому я не знаю, есть ли у Google ответ (возможно, однако).

У меня есть две модели:

class Vocabulary < ApplicationRecord
    has_many :vocabulary_pairs
    validates :name, presence: true, length: { maximum: 50 }
    accepts_nested_attributes_for :vocabulary_pairs
    attr_accessor :vocabulary_pairs_attributes
end
class VocabularyPair < ApplicationRecord
  belongs_to :vocabulary
end

Сокращенная версия моей формы:

<%= form_for @vocabulary, url: { action: 'update' } do |vocabulary_form| %>
    <h3><%= @vocabulary.name %></h3>
    <%= vocabulary_form.fields_for :vocabulary_pairs, @vocabulary.vocabulary_pairs.build do |pair_field| %>
        <%= pair_field.text_field :origin, class: 'form-control' %>
    <% end %>
<% end %>

В одном представлении (vocabularies#show) и форме я бы хотел, чтобы люди могли

  • Просмотр / редактирование существующих связей между моделями (поэтому показывать все VocabularyPairs для каждого Vocabulary)
  • Создайте новые ассоциации, предварительно создав произвольное (скажем, 10) количество пустых форм ассоциаций.

Как я могу использовать fields_for, чтобы объединить эти два? Считается ли хорошей практикой даже пытаться? Есть ли лучший способ для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...