1

我想要实现的目标:使用我的 isotope.js 动态创建类别分类器Gallery.tag

为此,我需要

  1. 为我的 html .class 循环出一个小写的唯一标签
  2. 循环出标签(使用 globalize 3 进行翻译)以显示在<h2>

我不能同时使用@galleries这两种情况,因为在切换语言时,它会将中文字符输出到我的 .class 中,这会破坏分拣机。因此,我创建了两个数组并将它们与 zip 组合在一起并与每个数组循环。

我尝试按字母顺序对它们进行排序,但我对应的中文标签没有按照我的英文顺序。

画廊/index.html.erb

<% @uniq_test = [] %>
    <% @galleries_order.each do |gallery| %>
        <% next if @uniq_test.include?(gallery.tag) %>
    <% @uniq_test << gallery.tag %>
<% end %>
<% @sorters = @sorters.map(&:downcase).sort! %>
<% @uniq_test = @uniq_test.map(&:downcase).sort! %>
<% @uniq_sorters = @uniq_test.zip(@sorters) %>
<div class="main">
    <div class="gallery-select-wrapper">
        <div class="sort-gallery-buttons animated slideInLeft text-center">
            <h2 id="recent"class="recent"><%= t"galleries.sorter.recent"%></h2>
    <% @uniq_sorters.each do |uniq, sorter| %>
        <% if sorter != nil %>
            <% str = "<h2 class='" + sorter + "'" + "id='"+ sorter + "'>"%>
            <%= str.html_safe + uniq + "</h2>".html_safe %>
        <% end %>
    <% end %>
        </div>
    </div>
</div>

控制器/画廊.rb

def index
    @galleries = Gallery.all.order("created_at DESC")
    @galleries_order = Gallery.all.order("title ASC")
    @sorters = Gallery.uniq.pluck(:tag)
    gon.tags = Gallery.uniq.pluck(:tag)
end

en 类别是 [国家、主题、项目、战争] zh 类别是 [主题,国家、战争、项目] <-- 当前(在 en = 主题、国家、战争、项目中)我的类别是 [国家、主题、项目、战争] <--目标(同en)

简而言之,我希望中文翻译按照我的英文字母顺序。

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

0

解决了!简而言之,要使用 globalize3 ::translation 模型对某些内容进行排序,对我而言,最好的方法是按:id或按我的情况进行排序,:created_at而不是按标题进行排序,我必须找到一种对汉字进行排序的方法!因为我并不特别关心这些术语是否按字母顺序排列,只要它们是同步的,我就很高兴。

就这么简单,我肯定是想多了!

画廊/index.html

<% @array = [] %>
<% @test.each do |test| %>
    <% next if @array.include?(test.tag) %>
    <% @array << test.tag %>
<% end %>

<% @array_en = [] %>
<% @test.each do |test| %>
    <% next if @array_en.include?(test.tag_en) %>
    <% @array_en << test.tag_en %>
<% end %>

<% @combined_array = @array.zip(@array_en) %>

<div class="main">
    <div class="gallery-select-wrapper">
        <div class="sort-gallery-buttons animated slideInLeft text-center">
            <h2 id="recent"class="recent"><%= t"galleries.sorter.recent"%></h2>
    <% @combined_array.each do |uniq, sorter| %>
        <% if sorter != nil %>
            <% str = "<h2 class='" + sorter + "'" + "id='"+ sorter + "'>"%>
            <%= str.html_safe + uniq + "</h2>".html_safe %>
        <% end %>
    <% end %>
        </div>
    </div>
</div>

控制器/画廊.rb

@test = Gallery.all.sort { |p1, p2| p1.created_at <=> p2.created_at }
于 2016-03-26T15:35:32.387 回答