क्या कोई मुझे रेल 3 में नेस्टेड विशेषताओं के माध्यम से चल सकता है?रेल में नेस्टेड गुण 3
मैं दो मॉडल है: प्रमाण पत्र और अभिरक्षक, इस प्रकार से संबंधित:
प्रमाणपत्र मॉडल:
class Certificate < ActiveRecord::Base
belongs_to :shareholder
belongs_to :custodian
belongs_to :issuer
accepts_nested_attributes_for :custodian, :shareholder, :issuer
end
प्रमाणपत्र नियंत्रक:
class CertificateController < ApplicationController
def issue
@certificate = Certificate.new
@certificate.custodian.build
end
end
मेरे दृश्य:
<% form_for(:certificate, :url => {:action => 'testing'}) do |f| -%>
<div id="error">
<%= f.error_messages %>
</div>
<%= f.label :number, "Certificate Number" %>
<%= f.text_field :number %> <br/>
<%= f.label :num_of_shares, "Number Of Shares" %>
<%= f.text_field :num_of_shares %> <br/>
<% f.fields_for :custodian do |custodian| -%>
<%= custodian.label :name, "Custodian Name" %>
<%= custodian.text_field :name %>
<% end -%>
<%= f.submit "Issue Certificate", :disable_with => 'Working....' %>
<% end -%>
अब, लाइन 4 पर किसी कारण, मेरे नियंत्रक में के लिए: @certificate.custodian.build
मैं इस त्रुटि हो रही है: undefined method 'build' for nil:NilClass
किसी भी एक कृपया मदद कर सकते हैं?
धन्यवाद 'पेजिक' वही है जो मैं प्राप्त करने की कोशिश कर रहा हूं। लेकिन एक चयन बॉक्स के बजाय, मैं एक स्वत: पूर्ण क्षेत्र बनाने के लिए अजाक्स का उपयोग करने की योजना बना रहा हूं। लेकिन अभी के लिए, मुझे यह वर्णन करने में दिलचस्पी है कि आपने जिस तरीके से वर्णन किया है। –
मैं सूचीबद्ध कस्टोडियन के साथ एक नया इंस्टेंस वैरिएबल बना सकता हूं और एक चयन बॉक्स प्रदर्शित कर सकता हूं, लेकिन फिर मैं मॉडल में एसोसिएशन को कैसे सहेज सकता हूं? –
आईडी/नाम विकल्प जोड़े के साथ चयन बॉक्स को पॉप्युलेट करें। यह कैसे करना है इसके बारे में एक अच्छी मार्गदर्शिका यहां दी गई है, http://guides.rubyonrails.org/form_helpers.html#making-select-boxes-with-ease यह आपके मूल रूप को ऊपर और चलाना चाहिए। स्वत: पूर्ण करने के लिए, आपको JSON बनाने की आवश्यकता है ताकि यह कस्टोडियन नियंत्रक के लिए अद्वितीय कुछ हो, जैसे आईडी या नाम अद्वितीय हो। –