У меня есть две модели: Company и CompanyContact.
Так у меня обычный ...
companies_controller.rb
def edit
@company = Company.find(params[:id])
student = @company.students.build
company_contact = @company.company_contacts.build
end
company.rb
has_many :company_contacts, :dependent => :destroy
accepts_nested_attributes_for :company_contacts, :reject_if => :reject_company_contacts, :allow_destroy => true
company_contact.rb
belongs_to :company
form.html.erb
<%= f.fields_for :company_contacts do |builder| %>
<%= render "company_contact_fields", :f => builder %>
<% end %>
_company_contacts.html.erb
<p style="margin:5px 0;">
<%= f.label :first_name %><br />
<%= f.text_field :first_name, :class => 'text_field' %>
</p>
<p style="margin:5px 0;">
<%= f.label :email %><br />
<%= f.text_field :email, :class => 'text_field' %>
</p>
В форме редактирования, если у меня уже есть контакт компании для компании, он дает мне существующую запись плюс еще одну пустую форму контакта компании, готовую для заполнения. Это нормально, потому что это должно произойти.
Мне нужно только иметь ОДИН контакт компании, поэтому, если контакт уже есть, я не хочу отображать другую форму, чтобы добавить дополнительный контакт компании. Я не хочу устанавливать отношение has_one, потому что мой клиент может захотеть добавить дополнительные контакты компании в будущем, а также, когда я попробовал отношение has_one, я получил кучу ошибок.
Хорошо, поэтому, чтобы иметь только ОДИН контакт компании на компанию, я попробовал решение для счетчика, вы знаете в цикле set counter = 0, а затем проверьте, если счетчик> 0, но это «решение» не работает. Что бы вы предложили?