जब रेलवे रेल में प्रदर्शित करने की कोशिश करता है तो रेल तिथि date_select विफल

मैं एक झगड़ा में भाग गया कि मैं यह नहीं समझ सकता कि समस्या क्या है, मुझे यकीन है कि यह पता लगाने में अविश्वसनीय रूप से आसान है लेकिन रेल के लिए नया होने के कारण मैं स्टंप हो गया हूं।

मेरे पास मेरे नियंत्रकों में से एक में बहुत अच्छा new.html.erb है जो कुछ जानकारी दर्ज करता है:

Verify your Credentials

<%= form_tag(:action => 'create') do %>

Enter your ID -OR- SSN:<%= text_field_tag "theID" %>

<%= date_select("dob", start_year: 1900, order:[:month,:day, :year]) %>

<%= submit_tag %>

<% end %>

काफी उचित है, यह नियंत्रक में कार्रवाई के अनुसार तैयार करने के लिए प्रस्तुत करता है जहां मैं कुछ सत्यापन करता हूं (सुनिश्चित करें कि उन्होंने उचित जन्मदिन चुना है और एसएसएन/आईडी भर दिया है)।

तो यह मेरे पास है

def create
    @userid = params[:theID]
    @dob = params[:dob]

    if @userid.empty?
        flash[:error] = "You need to enter yoru valid ID or your SSN"
        render :new
    end

    #yes I knwo this check is bogus, I really need to make sure its not a date from like today at least... 
    if @dob.empty?
        logger.debug "Made it to userid empty"
        flash[:error] = "You must include your date of birth"
        render :new
    end
end

अधिक आसान आसान, मुझे पता है कि डीओबी चेक फर्जी है लेकिन क्या होता है अगर मैं कोई आईडी नहीं डालता, और सबमिट पर क्लिक करता हूं या फिर मुझे त्रुटि नहीं मिलती है:

NoMethodError at /create_my_aaccount undefined method '{:start_year=>1900, :order=>[:month, :day, :year]}' for #

रेखा पर:

5

<%= date_select("dob", start_year: 1900, order:[:month,:day, :year]) %>

तो सुनिश्चित नहीं है कि यह प्रस्तुत करने के बाद दूसरी बार क्यों टूटता है: नया

अगर मैंने वास्तव में त्रुटि को देखा तो यह लगभग लगता है कि फ्लैश उत्पन्न करने के लिए कोड खराब हो सकता है और जब फ्लैश प्रदर्शित करने की कोशिश कर रहा है, तो दूसरी बार त्रुटि हो सकती है (लेकिन मैंने जनरेटर द्वारा मूल रूप से निर्मित एप्लिकेशन से फ्लैश कोड को कभी नहीं छुआ )। तो हाँ पूरी तरह से अटक गया, और मुझे पता है कि यह संभवतः बेवकूफ आसान है ... अनुभव की कमी।

new.html.erb :

Verify your Credentials

<%= form_tag(:action => 'create') do %>

Enter your ID -OR- SSN:<%= text_field_tag "theID" %>

<%= date_select("dob", start_year: 1900, order:[:month,:day, :year]) %>

<%= submit_tag %>

<% end %>

टूटने वाले दृश्य का HTML आउटपुट (दूसरे प्रस्तुत करने से पहले एचटीएमएल आउटपुट चेतावनी: दृश्य के नए कारण जो त्रुटि के लिए सही हो जाता है)

इसलिए यह भी ध्यान दिया जाना चाहिए, मैं उपर्युक्त युग की तारीख फ़ील्ड आयन निकाल सकता हूं और यह सब ठीक काम करता है ... तो हो सकता है कि यह फ़्लैश संदेश न हो।

        <!DOCTYPE HTML>
        <html>
          <head>
            <meta name="viewport" content="width=device-width, initial-scale=1.0">
            <title> Myaccount</title>
            <meta name="description" content="Myaccount">
            <link href="/assets/application.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/jquery.ui.core.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/jquery.ui.theme.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/dataTables/src/demo_table_jui.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/bootstrap_and_overrides.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/create_my_aaccount.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/details.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/emergency_notification.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/home.css?body=1" media="all" rel="stylesheet" type="text/css" />
        <link href="/assets/recovery.css?body=1" media="all" rel="stylesheet" type="text/css" />
            <script src="/assets/jquery.js?body=1" type="text/javascript"></script>
        <script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-transition.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-affix.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-alert.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-button.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-carousel.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-collapse.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-dropdown.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-modal.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-scrollspy.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-tab.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-tooltip.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-popover.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap-typeahead.js?body=1" type="text/javascript"></script>
        <script src="/assets/bootstrap.js?body=1" type="text/javascript"></script>
        <script src="/assets/create_my_aaccount.js?body=1" type="text/javascript"></script>
        <script src="/assets/details.js?body=1" type="text/javascript"></script>
        <script src="/assets/emergency_notification.js?body=1" type="text/javascript"></script>
        <script src="/assets/helpdesk_home.js?body=1" type="text/javascript"></script>
        <script src="/assets/home.js?body=1" type="text/javascript"></script>
        <script src="/assets/recovery.js?body=1" type="text/javascript"></script>
        <script src="/assets/dataTables/jquery.dataTables.js?body=1" type="text/javascript"></script>
        <script src="/assets/application.js?body=1" type="text/javascript"></script>
            <meta content="authenticity_token" name="csrf-param" />
        <meta content="w4HKsIXFvZU85/8Lfo2Sw1jdotohbNTaikD6y8lZ+fI=" name="csrf-token" />

          </head>
          <body class="create_my_aaccount new">
            <div class="navbar navbar-fixed-top">
              
            </div>
            <div id="main" role="main">
              <div class="container">
                <div class="content">
                   <div class="row">
                    <div class="span12">

                      

Verify your Credentials

<form accept-charset="UTF-8" action="/create_my_aaccount" method="post"><div style="margin:0;padding:0;display:inline"><input name="utf8" type="hidden" value="✓" /><input name="authenticity_token" type="hidden" value="w4HKsIXFvZU85/8Lfo2Sw1jdotohbNTaikD6y8lZ+fI=" /></div>

Enter your ID -OR- SSN:<input id="theID" name="theID" type="text" />

<input name="commit" type="submit" value="Save changes" />

</form> </div> </div>
</div> </div> <!--! end of .container --> </div> <!--! end of #main --> </body> </html>
0
yess संपादित और जोड़ा।
जोड़ा लेखक Codejoy, स्रोत
एलओएल एक लंबा दिन रहा है मुझे यह प्राप्त करने दो ... अच्छा कॉल मुझे लगता है कि मैं देखता हूं कि आप कहां आंखों के इस अतिरिक्त सेट के साथ जा रहे हैं हमेशा मदद करता है .... मुझे वीपीएन दें और इसे प्राप्त करें।
जोड़ा लेखक Codejoy, स्रोत
ठीक है, मुझे यह कोशिश करने दो, अजीब यह पहली बार काम करता है।
जोड़ा लेखक Codejoy, स्रोत
# के लिए हमम "अपरिभाषित विधि 'जन्मदिन'>
जोड़ा लेखक Codejoy, स्रोत
खैर मैं उलझन में था कि बिल्ली इस रेखा में बिल्कुल वापस आ रहा था: @dob = params [: dob] लेकिन मुझे कहना है कि मेरे पास एक और लॉगर था। डिबग और पहला अगर @ userid.empty ट्रिगर कर रहा था? फ्लैश [: त्रुटि] = "आपको योरो वैध आईडी या अपने एसएसएन में प्रवेश करने की आवश्यकता है" प्रस्तुत करें: नया अंत तो यह नया हो रहा है, फिर से नहीं बना है इसलिए .empty (इस बिंदु पर) कोई मुद्दा नहीं होना चाहिए?
जोड़ा लेखक Codejoy, स्रोत
हम्म यह है कि यह विजेट को दोबारा बदलने की कोशिश कर रहा है कि कैसे (दिनांक_ चयन) मुझे आश्चर्य है कि {"(3i)" => "26", "(2i)" => "11", "(1i)" के लिए अपरिभाषित विधि ' => "2013"}: ActiveSupport :: हैशविथइंडिफरेंस एक्सेस पकड़ रहा है कि इसका पूर्णांक यह नहीं है कि 3i, 2i 1i का अर्थ क्या है?
जोड़ा लेखक Codejoy, स्रोत
मैं उस दस्तावेज़ को देखने की कोशिश करने के लिए धन्यवाद देना चाहता हूं, मैं यह नहीं बता सकता कि मैं क्या गलत कर रहा हूं, जब तक कि @ डब में डेटा प्रस्तुत करने से पहले मालिश नहीं किया जाता है: किसी भी तरह से नया कॉल
जोड़ा लेखक Codejoy, स्रोत
दांतों के बहुत पीसने के बाद ओएमजी मुझे मिला। हाँ के लिए क्या नींद आती है, मेरे अपने प्रश्न का उत्तर देगी।
जोड़ा लेखक Codejoy, स्रोत
क्या आप अपने विचार का एचटीएमएल कोड दिखा सकते हैं?
जोड़ा लेखक Thanh, स्रोत
हाय कोडेजो, मेरा मतलब एचटीएमएल जेनरेट कोड है, रूबी कोड देखने के लिए नहीं: डी
जोड़ा लेखक Thanh, स्रोत
आपकी date_select कोड गलत वाक्यविन्यास था। अपने कोड के लिए इस कोड का प्रयोग करें: <% = date_select ("dob", "जन्मदिन", start_year: 1 9 00, आदेश: [: दिन,: महीना, वर्ष]]%> । आपके संदर्भ वाक्यविन्यास के लिए: date_select
जोड़ा लेखक Thanh, स्रोत
@dob अब एक हैश पैरा है, इसलिए इसमें विधि खाली नहीं है? । इसके अलावा तिथि का चयन हमेशा डेटा है, इसलिए मुझे लगता है कि आपको खाली तिथि की जांच करने की आवश्यकता नहीं है।
जोड़ा लेखक Thanh, स्रोत
इसलिए date_select में "जन्मदिन" को निकालने का प्रयास करें: <% = date_select ("dob", "", start_year: 1900, आदेश: [: दिन,: महीना, वर्ष]]%>
जोड़ा लेखक Thanh, स्रोत

1 उत्तर

यह पता चला है कि मुद्दा दो (शायद तीन गुना) था:

प्रथम:

@dob = params[:dob] 

वैध तिथि नहीं है, मुझे निम्नलिखित करना था:

dob = params[:dob];
@bdate = Date.new dob["bday(1i)"].to_i, dob["bday(2i)"].to_i, dob["bday(3i)"].to_i

मानते हुए कि मेरे विचार को इस तरह परिभाषित किया गया था:

   

<%= date_select("dob", "bday", start_year: 1900, order: [:day, :month, :year]) %>

उसके बाद, यह पता चला कि रेल त्रुटि संदेश मुझे बता रहा था कि मेरे पास कई दिशाएं थीं .. इसलिए मैं इसे समेकित करता हूं:

if @userid.empty? or @bdate.today?
  logger.debug "Made it to userid empty"
  flash[:error] = "Please enter a valid ID and select a valid birthdate"
  redirect_to action: 'new'
end

और मैंने एक रीडायरेक्ट का उपयोग प्रस्तुत नहीं किया क्योंकि यह भी कहा गया है कि निष्पादन बंद नहीं होता है और मेरे निर्माण विधि के मामले में उपर्युक्त कोड है, मुझे इसे त्रुटि पर चाहिए।

0
जोड़ा
हाय, अच्छी तरह से किया: डी
जोड़ा लेखक Thanh, स्रोत