2009-08-05 7 views
16

Jest to w zasadzie pytanie w formie zagnieżdżonej, ale z jednym tylko polem należącym do modelu nadrzędnego. Moja formularz wprowadzania danych zbiera dane dla modelu - jednak muszę też zebrać jeszcze jeden element danych/wartość (UserID), który faktycznie przechodzi do rekordu nadrzędnego, który zostanie utworzony z rekordem szczegółowości.Szyny - dane wejściowe użytkownika dla wielu modeli w jednym formularzu - jak

Railsy AFAIK oczekują, że każde pole formularza zostanie odwzorowane na model i potrzebuję utworzyć niezwiązane pole wprowadzania danych, którego użyję osobno.

Jak mogę przesłonić to domyślne zachowanie i utworzyć wolne pole formularza/niezwiązane?

TIA, BC

Odpowiedz

43

Oto coś z mojej własnej aplikacji:

Dostęp do niego przez:

params[:company] and params[:user] 

Kontroler:

@company = Company.new 
@user = User.new 

Widok:

<% form_for @company, :url => companies_path do |f| %> 
    <%= f.error_messages %> 
    <p> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </p> 
    <p> 
    <%= f.label :website %><br /> 
    <%= f.text_field :website %> 
    </p> 
<hr /> 
    <% fields_for @user do |u| %> 
    <p> 
     <%= u.label :email %><br /> 
    <%= u.text_field :email %> 
    </p> 
    <p> 
     <%= u.label :username %><br /> 
    <%= u.text_field :username %> 
    </p> 
    <p> 
     <%= u.label :password %><br /> 
    <%= u.password_field :password %> 
    </p> 
    <p> 
    <%= u.label :password_confirmation %><br /> 
    <%= u.password_field :password_confirmation %> 
    </p> 
    <% end %> 
    <p> 
     <%= f.submit "Submit" %> 
    </p> 
<% end %> 
Powiązane problemy