2009-08-05 19 views
16

Temel olarak, bir üst modele ait tek bir alanda olsa da, iç içe geçmiş bir form sorusudur. Veri giriş formum bir model için veri toplar - ancak aynı zamanda detay kaydıyla oluşturulacak bir ebeveyn kaydına giren bir veri öğesi/değeri (Kullanıcı Kimliği) toplamanız gerekir.Raylar - Tek bir formda Birden çok model için Kullanıcı Girişi - Nasıl

AFAIK Rayları, her form alanının bir modelle eşleşmesini bekler ve ayrı kullanacağım bir bağlanmamış veri girişi alanı oluşturmam gerekir.

Bu varsayılan davranışı nasıl geçersiz kılabilir ve 'serbest form/ilişkisiz alan' oluşturabilirim?

TIA, "sihirli" biçiminde < için M.Ö.

cevap

43

Kendi uygulamasından birşeyler:

Erişim yolu:

params[:company] and params[:user] 

Denetleyici:

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

Görünüm:

<% 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 %> 
İlgili konular