2009-08-05 6 views
16

यह मूल रूप से एक नेस्टेड फॉर्म प्रश्न है, यद्यपि एक मूल मॉडल से संबंधित केवल एक फ़ील्ड है। मेरा डेटा एंट्री फॉर्म एक मॉडल के लिए डेटा एकत्र करता है - हालांकि मुझे एक दूसरे को एक डेटा तत्व/मूल्य (उपयोगकर्ता आईडी) एकत्र करने की भी आवश्यकता है जो वास्तव में एक अभिभावक रिकॉर्ड में जाता है जिसे विस्तार रिकॉर्ड के साथ बनाया जाएगा।रेल - एक ही फॉर्म पर एकाधिक मॉडलों के लिए उपयोगकर्ता इनपुट - कैसे

AFAIK रेल प्रत्येक फॉर्म फ़ील्ड को मॉडल पर मैप करने की अपेक्षा करता है और मुझे एक अनबाउंड डेटा इनपुट फ़ील्ड बनाने की आवश्यकता है जिसे मैं अलग से उपयोग करूंगा।

मैं इस डिफ़ॉल्ट व्यवहार को ओवरराइड कैसे कर सकता हूं और एक 'फ्री फॉर्म/अनबाउंड फ़ील्ड' बना सकता हूं?

TIA, ई.पू.

उत्तर

2

"जादू" फ़ॉर्म < के लिए => मॉडल मानचित्रण form_for प्रयोग किया जाता है। (http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html)

आप वर्तमान मॉडल से कुछ की कोशिश http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html

का उपयोग कर कि आप जोड़ सकते हैं टैग मॉडल से अलग है, जैसे

radio_button_tag 

form_for ब्लॉक के अंदर की जरूरत है

43

मेरे अपने ऐप से कुछ है:

इसे एक्सेस करें:

params[:company] and params[:user] 

नियंत्रक:

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

दृश्य:

<% 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 %> 
संबंधित मुद्दे