如何在 Alchemy CMS 中显示具有相同标签的元素?
How can I display elements with the same tag in Alchemy CMS?
如何在 Alchemy CMS 中显示具有相同标签的元素?
我用标签 "logic" 标记了一些元素。现在,我想在另一个页面上显示带有此标签的最新元素。有代码行吗?例如这样的事情:
<%= render_elements :from_tag => 'logic' %>
您不能在此处使用 render_elements
助手。
但是你可以使用普通的 ol' Rails 和 render_element
助手:
<% @page.elements.available.tagged_with('logic').each do |element| %>
<%= render_element element %>
<% end %>
或者,如果没有 render_element
助手,您可以只渲染部分视图:
<% @page.elements.available.tagged_with('logic').each do |element| %>
<%= render element %>
<% end %>
但请注意,然后您需要在元素视图中使用元素的部分名称作为本地对象,因为 Rails 使用部分名称作为默认本地对象.因此,例如,一个名为 article
的元素和一个名为 _article_view
的视图部分有一个名为 article_view
的本地对象。
如果您想保留 Alchemy 元素生成器的默认本地 element
对象,您仍然可以将其传递到您的视图中:
<% @page.elements.available.tagged_with('logic').each do |element| %>
<%= render element, element: element %>
<% end %>
但这看起来有点奇怪,我更喜欢使用 render_element
助手,或者在我的元素视图中重命名本地对象。
如何在 Alchemy CMS 中显示具有相同标签的元素?
我用标签 "logic" 标记了一些元素。现在,我想在另一个页面上显示带有此标签的最新元素。有代码行吗?例如这样的事情:
<%= render_elements :from_tag => 'logic' %>
您不能在此处使用 render_elements
助手。
但是你可以使用普通的 ol' Rails 和 render_element
助手:
<% @page.elements.available.tagged_with('logic').each do |element| %>
<%= render_element element %>
<% end %>
或者,如果没有 render_element
助手,您可以只渲染部分视图:
<% @page.elements.available.tagged_with('logic').each do |element| %>
<%= render element %>
<% end %>
但请注意,然后您需要在元素视图中使用元素的部分名称作为本地对象,因为 Rails 使用部分名称作为默认本地对象.因此,例如,一个名为 article
的元素和一个名为 _article_view
的视图部分有一个名为 article_view
的本地对象。
如果您想保留 Alchemy 元素生成器的默认本地 element
对象,您仍然可以将其传递到您的视图中:
<% @page.elements.available.tagged_with('logic').each do |element| %>
<%= render element, element: element %>
<% end %>
但这看起来有点奇怪,我更喜欢使用 render_element
助手,或者在我的元素视图中重命名本地对象。