Я играл с шаблонизатором Liquid в эти выходные, и мне интересно, возможно ли следующее. [12166 Скажем, у меня есть метод latest_posts
в модели Blog
, которому я могу передать целое число, чтобы получить последние N сообщений. Можно ли использовать этот метод в жидком шаблоне?
Например:
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
В приведенном выше упрощенном примере в моих жидких шаблонах я могу использовать блог . all_posts
и blog.last_post
, но не представляю, как мне поступить, как blog.latest_posts: 10
.
Может кто-нибудь указать мне правильное направление?
Одна идея, о которой я подумал, состояла в том, чтобы создать фильтр Liquid и передать в него и объект Blog, и целое число. Что-то вроде:
{% for post in blog | latest_posts(10) %}