Hey, I’m using Rails4.rc2 and here is my problem:
I have model called Manager, it has_one ManagerContact and ManagerBank.
I’m
trying to build a form in which Manager can update his ManagerContact
and
ManagerBank.
Controller in charge of profile:
…
def profile
@manager = current_manager
@contact = @manager.manager_contact.nil? ?
@manager.build_manager_contact : @manager.manager_contact
@bank = @manager.manager_bank.nil? ? @manager.build_manager_bank
:
@manager.manager_bank
end
def update_profile
current_manager.update_attributes(manager_params)
…
redirect_to managers_profile_path
end
private
def manager_params
params.require(:manager).permit(:biz_type,
:manager_contact => [:first_name,
:last_name, :phone_number, :dob],
:manager_bank => [:account_holder,
:routing, :account]
)
end
…
In the view(I omitted some inputs to save space) :
= form_for @manager, url: managers_edit_path, method: :post do |f|
.divider
%fieldset
%legend Personal Information
= f.fields_for @contact do |ff|
.inputs
= ff.label :first_name
= ff.text_field :first_name
.divider
%fieldset
%legend Bank Information
= f.fields_for @bank do |ff|
.inputs
= ff.label :account_holder
= ff.text_field :account_holder
.divider
%fieldset
= f.submit 'Save Changes', class: 'button active'