में मॉडल उदाहरण विधियों के लिए वेरिएबल्स पास करना मैं इस सप्ताह के अंत में तरल टेम्पलेटिंग इंजन के साथ खेल रहा हूं, और मुझे आश्चर्य है कि निम्नलिखित संभव है या नहीं।तरल टेम्पलेट्स
मैं एक Blog
मॉडल है, जो मैं नवीनतम एन पदों प्राप्त करने के लिए एक पूर्णांक पारित कर सकते हैं में एक latest_posts
विधि है कहो। क्या एक विधि को तरल टेम्पलेट में उपयोग करना संभव है?
उदाहरण के लिए:
class Blog
has_many :posts
def latest_posts(n)
posts.latest(n) # using a named scope
end
def to_liquid(*args)
{
'all_posts' => posts.all, # allows me to use {% for posts in blog.all_posts %}
'last_post' => post.last, # allows me to use {% assign recent = blog.last_post %}
'latest_posts' => posts.latest_posts(args[0]) # how do I pass variables to this?
}
end
end
ऊपर सरल उदाहरण में, मेरा तरल टेम्पलेट्स में मैं blog.all_posts
और blog.last_post
, का उपयोग लेकिन पता नहीं कैसे मैं blog.latest_posts: 10
की तरह कुछ भी कर हो सकता है।
क्या कोई मुझे सही दिशा में इंगित कर सकता है?
एक विचार मैंने सोचा था कि एक तरल फ़िल्टर बनाना था और ब्लॉग ऑब्जेक्ट और उसमें एक पूर्णांक दोनों को पास करना था। की तरह कुछ:
{% for post in blog | latest_posts(10) %}
- लेकिन प्रयास नहीं किया है कि अभी तक लग रहा है के रूप में की तरह मैं अंधेरे कुछ ही देर में चारों ओर चोट पहुंचा रहा हूँ। अधिक अनुभवी तरल उपयोगकर्ताओं से कुछ मदद की सराहना करेंगे।
पहले_method पर जानकारी के लिए धन्यवाद। मैं मानता हूं कि यह थोड़ा हैकी है लेकिन याद रखें कि तरल पदार्थ के लिए फोकस टेम्पलेट है, न कि टेम्पलेट के पीछे मशीनरी। इसका इरादा लोगों के अन्य सेटों को सुरक्षित तरीके से डेटा के उपयोगी/परिष्कृत दृश्य बनाने के लिए केवल टेम्पलेट भाषा का उपयोग करने के लिए सक्षम करना है। मुझे लगता है कि इसके लिए यह बहुत अच्छा है - मेरे ग्राहक और उनके ठेकेदार दोनों मेरे एसएएएस डेटा के साथ तरल टेम्पलेट का उपयोग करते हैं। –