यह अभ्यास थोड़ा मुश्किल था। अनुमान लगाया कि मैं यह देखने के लिए अपना समाधान पोस्ट करूंगा कि किसी ने इसे अलग किया है या यदि कोई बेहतर तरीका जानता है।140 अक्षरों से गिनने के लिए होम पेज पर एक जावास्क्रिप्ट डिस्प्ले जोड़ें। (रेल ट्यूटोरियल, द्वितीय एड, अध्याय 10, व्यायाम 7)
मुझे एसेट पाइपलाइन का उपयोग करने के लिए सर्वोत्तम प्रथाओं पर यकीन नहीं है .. उदाहरण के लिए, application.js मेनिफेस्ट फ़ाइल में चीजों को रखने के लिए सही क्रम, या चीज़ों को lib बनाम ऐप में कब रखना है। मैं इसे काम करने के लिए प्रयास करने के लिए बस lib में निम्नलिखित डाल दिया।
Michael Hartl's Rails Tutorial 2nd ed अध्याय 10 से
, व्यायाम 7:
(चुनौतीपूर्ण) 140 अक्षरों से उलटी गिनती होम पेज के लिए एक जावास्क्रिप्ट प्रदर्शन जोड़ें।
सबसे पहले, मैंने यह post about jQuery Twitter-like countdowns पढ़ा, जिसने कोड को ऐसा करने के लिए प्रदान किया। इस तरह देखने के लिए
इसके बाद, मैं, अपडेट की/विचारों/साझा/_micropost_form.html.erb: फिर
<%= form_for(@micropost) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%= f.text_area :content, placeholder: "Compose new micropost..." %>
</div>
<%= f.submit "Post", class: "btn btn-large btn-primary" %>
<span class="countdown"></span>
<% end %>
, मैं lib में एक javascripts निर्देशिका और कहा कि फ़ाइल
lib/संपत्ति बनाई
function updateCountdown() {
// 140 is the max message length
var remaining = 140 - jQuery('#micropost_content').val().length;
jQuery('.countdown').text(remaining + ' characters remaining');
}
jQuery(document).ready(function($) {
updateCountdown();
$('#micropost_content').change(updateCountdown);
$('#micropost_content').keyup(updateCountdown);
});
अंत में /javascripts/microposts.js, मैं सीएसएस का एक छोटा सा जोड़ा
एप्लिकेशन/आस्तियों/स्टाइलशीट/custom.css.scss
/* micropost jQuery countdown */
.countdown {
display: inline;
padding-left: 30px;
color: $grayLight;
}
अंत में,/ऐप्स/आस्तियों/javascripts को निर्देश जोड़ने application.js
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require microposts
//= require_tree .
अंतिम परिणाम इस http://grab.by/dbC6
तरह लग रहा हैप्रश्न: यह प्रकट ली डाल करने के लिए गलत नहीं होगा //= require_tree .
उदाहरण के लिए, यह काम करता है लेकिन मुझे यकीन नहीं है कि अंतर क्या होगा, पेड़ के ऊपर की रेखा को जोड़कर बनाम अंतर क्या होगा।
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree .
//= require microposts
मैं अपने microposts.js डाल सुझाव है ऐप/संपत्ति/जावास्क्रिप्ट/में फ़ाइल, इस तरह आपको ऐप/संपत्ति/जावास्क्रिप्ट/application.js में अतिरिक्त लाइन जोड़ने की परेशानी की आवश्यकता नहीं है क्योंकि इसे स्वचालित रूप से '// = requ_tree .' के माध्यम से शामिल किया जाएगा। अन्यथा, अच्छा लग रहा है और अच्छी तरह से काम करता है। – jonyamo
अपना कोड साझा करने के लिए धन्यवाद। मैंने इसे संदर्भित किया जब मैंने उलटी गिनती के कार्यान्वयन को किया, जिसे मैंने SO [यहां] (http://stackoverflow.com/q/10955850/567863) पर कुछ प्रश्न पूछे। उम्मीद है कि अगर आपको कुछ संदर्भ सामग्री प्रदान की जाए तो वैसे ही आपके प्रश्न ने मेरे लिए किया था। –