कैसे लिखो if
और if
- else
रसेल आवेदन पर एक रूबी के लिए Haml में बयान?
कैसे लिखो if
और if
- else
रसेल आवेदन पर एक रूबी के लिए Haml में बयान?
जवाबों:
HAML इंडेंटेशन आधारित है, और पार्सर मुश्किल हो सकता है। आपको Haml में "- end" का उपयोग करने की आवश्यकता नहीं है। इसके बजाय इंडेंटेशन का उपयोग करें। हेमल में, जब भी रूबी मूल्यांकन आदेश के बाद इंडेंटेशन बढ़ाया जाता है, तब एक ब्लॉक शुरू होता है। जब इंडेंट कम हो जाता है तो यह समाप्त हो जाता है।
- if condition
= something
- else
= something_else
एक व्यावहारिक उदाहरण
- if current_user
= link_to 'Logout', logout_path
- else
= link_to 'Login', login_path
संपादित करें: यदि आप बस का उपयोग करना चाहते हैं तो स्थिति
- if current_user
= link_to 'Logout', logout_path
or
ऑपरेटर को शर्त में कैसे जोड़ा जाए ?
Haml में दो ऑपरेटरों को रूबी कोड के लिए उपयोग किया जाता है।
=
का उपयोग रूबी कोड के लिए किया जाता है जिसका मूल्यांकन किया जाता है और दस्तावेज़ में डाला जाता है। उदाहरण:
= form_for @user
-
का उपयोग रूबी कोड के लिए किया जाता है जिसका मूल्यांकन किया जाता है और दस्तावेज़ में सम्मिलित नहीं किया जाता है। उदाहरण:
- if @user.signed_in?
= "Hi"
- else
= "Please sign in!"
=
अगर आप सादे स्ट्रिंग को आउटपुट करना चाहते हैं जैसे Hi
या Please sign in
। =
केवल रूबी के मूल्यांकन के लिए आवश्यक है, जैसे= "Hi, #{@user.name}"
एचएमएल में, -
एक लाइन को इंगित करने के लिए (डैश) का उपयोग करें रूबी कोड। इसके अलावा, इंडक्शन लेवल ब्लॉक लेवल को दर्शाता है। यदि / अन्यथा कथन के लिए दोनों को मिलाएं।
- if signed_in?
%li= link_to "Sign out", sign_out_path
- else
%li= link_to "Sign in", sign_in_path
ईआरबी में निम्नलिखित कोड के समान है:
<% if signed_in? %>
<li><%= link_to "Sign out", sign_out_path %></li>
<% else %>
<li><%= link_to "Sign in", sign_in_path %></li>
<% end %>
अगर आप अपने टैग के अंदर शर्त रखना चाहते हैं
%section{:class => "#{'new-class' if controller.action_name == 'index'}"}
अपडेट करें
यहाँ एक और भिन्नता है
%nav(class="navbar"){class: content_for?(:navbar_class) ? yield(:navbar_class) : nil}
यहाँ दो लिंक दिए गए हैं:
पहले वाला एक कन्वर्टर है- आप html या एरब स्निपेट्स प्रविष्ट कर सकते हैं और आपको haml मिल सकता है!