У меня есть форма рельсов, которая включает родительский элемент, дочерний элемент и дочерний элемент дочернего элемента. Я использую камень nested_form, а версия rails - 4.1. Проблема, с которой я сталкиваюсь, связана с вложенной формой с вложенным полем внутри нее. Я не хочу, чтобы пользователь добавлял вложенный ресурс с помощью кнопки, но я хочу, чтобы вложенный объект был создан при загрузке представления.Building Rails Вложенная форма внутри вложенной формы
Родитель Модель
class LoanApplication < ActiveRecord::Base
# Associations
has_many :business_contacts, :dependent => :destroy
# Nested Object
accepts_nested_attributes_for :business_contacts, :allow_destroy => true
end
Ребенок Родитель
class BusinessContact < ActiveRecord::Base
# Associations
belongs_to :loan_application
has_one :personal_guarantee
# Nested objects
accepts_nested_attributes_for :personal_guarantee, :allow_destroy => true
end
Ребенок ребенка (Внук Родителю)
class PersonalGuarantee < ActiveRecord::Base
# Associations
belongs_to :business_contact
end
Просмотр
<%= f.fields_for :business_contacts, :wrapper => true do |contact_form| %>
<%= contact_form.fields_for :personal_guarantee do |guarantee| %>
<%= guarantee.text_field :guarantor_net_worth %>
<% end %>
<% end %>
Поля business_Contacts показать хорошо, но ребенок business_contacts не отображаются. Я вложил поля personal_guarantee в хэш-параметр params loan_application_controller.
loan_application_controller.rb
def loan_applications_params
params.require(:loan_application).permit(:loan_application_id, business_contacts_attributes: [:id, :business_salesforce_id, :prefix, :first_name, :exp_revenue_growth, :last_name, :business_title, :is_employee, :equity_hurdle, :contact_railsid, :guarantor_gender, :guarantor_sin_number, :guarantor_date_of_birth, :guarantor_phone_number, :guarantor_street_address, :guarantor_city, :guarantor_postal_code, :guarantor_province, :_destroy, personal_guarantee_attributes: [:id, :guarantor_net_worth]]
end
Как уже говорилось выше, с помощью данной установки, я не могу видеть, чтобы увидеть поле PersonalGuarantee в форме.