मेरे पास नए लेनदेन जोड़ने के लिए यहां एक फॉर्म है। मैं समझता हूं कि नीचे सभी नेस्टेड संसाधनों के साथ थोड़ा गड़बड़ है, लेकिन यह अभी भी काम करता है जबकि मैं अभी भी रेल सीख रहा हूं।

<%= form_for([@company, @captable, @event, @transaction]) do |f| %>
  <% if @transaction.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@transaction.errors.count, "error") %> prohibited this transaction from being saved:</h2>

      <ul>
      <% @transaction.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

मेरे पास मेरे transactions_controller.rb में निम्नलिखित चेक है जो पूरी तरह से काम करता है। यदि शर्त सही है, तो स्क्रिप्ट चलना बंद हो जाती है और मुझे सफलतापूर्वक नए फॉर्म पर वापस भेज दिया जाता है। हालांकि, मुझे प्रदर्शित करने में त्रुटि नहीं मिल रही है। स्पष्ट करने के लिए: उपरोक्त प्रपत्र में त्रुटि संदेश के प्रतिपादन को छोड़कर, सब कुछ अपेक्षित रूप से काम करता है।

# Verify that the transaction is valid first before saving 
@selling_shareholder = Shareholder.find(params[:selling_shareholder_id])
if @transaction.number_of_stocks > @selling_shareholder.number_of_stocks #Seller cannot sell more stocks then they own 
    @transaction.errors.add(:number_of_stocks, "Seller cannot sell more stocks then they own")
    redirect_to new_company_captable_event_transaction_path
    return
end

एकाधिक नेस्टेड मॉडल के साथ इन रूपों में त्रुटियों को सफलतापूर्वक प्रस्तुत करने के तरीके पर कुछ मदद पसंद करेंगे। शुक्रिया!

0
rock_n_rolla 16 अक्टूबर 2018, 12:52

1 उत्तर

सबसे बढ़िया उत्तर

आपके पास redirect_to new_company_captable_event_transaction_path है जो सर्वर के लिए एक नया अनुरोध प्रारंभ करता है, इसलिए प्रपत्र त्रुटियां खो जाती हैं। आपको redirect_to के बजाय render का उपयोग करना चाहिए

# Verify that the transaction is valid first before saving 
@selling_shareholder = Shareholder.find(params[:selling_shareholder_id])
if @transaction.number_of_stocks > @selling_shareholder.number_of_stocks #Seller cannot sell more stocks then they own 
  @transaction.errors.add(:number_of_stocks, "Seller cannot sell more stocks then they own")
  render 'new'
end
3
Pavan 16 अक्टूबर 2018, 09:57