2009-05-21 18 views
19

http://weblog.rubyonrails.org/2009/1/26/nested-model-formsjak obsługiwać wiele modeli w formie szyn

Ten post pomógł w nauce, jak obsługiwać wiele modeli w formie szyn. Działa tak długo, jak modele są zagnieżdżone. a jeśli nie? powiedzmy, mam formularz, w którym użytkownik wypełnia dane osobowe, dane adresowe i kilka pól wyboru określających jej zainteresowania. W tej jednej formie zaangażowane są co najmniej 3 tabele, jaki jest najlepszy sposób na obsłużenie tego, bez 3 różnych przycisków zapamiętywania?

Odpowiedz

25

dwie opcje:

Pierwszy jest ActivePresenter który działa dobrze na tym.

drugie jest po prostu użyć fields_for:

<%= form_for @user do |f| %> 

    <%=f.label :name %> 
    <%=f.text_field :name %> 

    <%= fields_for @address do |fa| %> 
     <%=fa.label :city %> 
     <%=fa.text_field :city %> 
    <% end %> 

<% end %> 

Następnie w kontroler, należy zapisać rekordy.

@user = User.new(params[:user]) 
@address = Address.new(params[:address]) 

ActivePresenter działa bardzo dobrze.

Znaleźliśmy również przez Google railsforum post, który działałby dobrze.

+0

Druga opcja wydaje się bardzo proste (mam już zgadliście) I nie natknąć tym tutorialu, ale to jest dla modeli zagnieżdżonych chociaż. Jedno pytanie: co jeśli miałbym wiele adresów? – user85748

+0

Naprawdę zalecam unikanie tego, jeśli możesz. To wcale nie jest miłe dla użytkownika. Jeśli musisz po prostu to zrobić, najpierw spójrz na to: http://blog.new-bamboo.co.uk/2007/8/31/presenters-conductors-on-rails Możesz także użyć tablic formularzy , ale nie jest to coś, co mogę wyjaśnić w komentarzu i jest to streszczenie. –

+0

unikając dodawania wielu adresów, które masz na myśli? to był tylko przykład, nie zamierzam tego zrobić. ale mogą istnieć przypadki, w których będzie to potrzebne. na przykład, gdy użytkownik wprowadza swoje zainteresowania (tak jak przykład, nie może myśleć o niczym lepszym) po jednym na pole tekstowe. – user85748

Powiązane problemy