Bu hafta sonu Sıvı şablonlama motoruyla uğraşıyorum ve aşağıdakilerin mümkün olup olmadığını merak ediyorum.Sıvı şablonlarında örnek örnek yöntemlerine geçirme değişkenleri
Blog
modelinde latest_posts
yöntemini varsa, en son N yayınlarını almak için bir tamsayı geçebiliyorum. Bu yöntemi sıvı bir şablonda kullanmak mümkün mü? Örneğin
: Yukarıdaki basitleştirilmiş örnekte
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
, benim sıvı şablonlarında ben blog.all_posts
ve blog.last_post
, kullanın ama blog.latest_posts: 10
böyle bir şey yapacağını nasıl hiçbir fikir sahibi olabilirsiniz.
Kimse doğru yöne işaret edebilir mi?
Düşündüğüm bir fikir, bir Sıvı filtresi oluşturmak ve hem Blog nesnesini hem de bunun tam sayısını iletmekti. şöyle birşey:
{% for post in blog | latest_posts(10) %}
- ama denemedim bu henüz hissi gibi karanlık biraz etrafında bıçaklama gibiyim. Daha deneyimli Sıvı kullanıcılardan bazı yardımlar için teşekkür ederiz.
before_method hakkında bilgi için teşekkürler. Bunun biraz hacky olduğunu kabul ediyorum, ancak sıvının odaklanmasının şablonun arkasındaki makineler değil, şablon olduğunu unutmayın. Buradaki amaç, diğer insan gruplarının, verilerin yararlı/sofistike görüntülerini güvenli bir şekilde yapmak için sadece şablon dilini kullanmasını sağlamaktır. Bunun için çok iyi olduğunu düşünüyorum - hem müşterilerim hem de müteahhitlerimiz Sıvı şablonlarını SAAS verilerimle kullanıyorlar. –