2015-03-20 3 views
0

У меня есть форма рельсов, которая включает родительский элемент, дочерний элемент и дочерний элемент дочернего элемента. Я использую камень 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 в форме.

ответ

0

В соответствии с направляющими направляющих fields_for ожидает, что параметры хэш будут третьим параметром, второй - объектом или нолем. Попробуйте следующее:

<%= f.fields_for :business_contacts, nil, :wrapper => true do |contact_form| %> 

Также, я думаю, все объекты в форме построены.

Смежные вопросы