使用globalize gem翻译的属性不适用于搜索形式

问题描述 投票:0回答:1

我正在使用此gem转换模型的属性

这是我的模特:

class Category < ActiveRecord::Base
  translates :name

  Globalize.fallbacks = {:es => [:es, :en, :pt], :en => [:en, :es, :pt], :pt => [:pt, :es, :en]}
  globalize_accessors
end

我有一个可以按名称搜索的表格

但是这对我不起作用,因为当我通过模型从数据库中获取数据时,我没有我的name属性

  def fetch_categories
    I18n.locale = @language

    categories = Category.where(event_id: @event.id).order("#{sort_column} #{sort_direction}")
    categories = categories.page(page).per_page(per_page)
    if params[:search][:value].present?
      categories = categories.where("name like :search", search: "%#{params[:search][:value]}%")
    end
    categories
  end

categories返回我

#<ActiveRecord::Relation [#<Category id: 1, client_id: 1, event_id: 1, color: "#265BBD">, #<Category id: 2, client_id: 1, event_id: 1, color: "#E35274">]>

如何在查询中获取名称属性?

我有我的categoriescategory_translations

ruby-on-rails globalize
1个回答
0
投票

我终于找到了解决方案,很简单:

  def fetch_categories
    I18n.locale = @language

    categories = Category.joins(:translations).where(event_id: @event.id).order("#{sort_column} #{sort_direction}")
    categories = categories.page(page).per_page(per_page)
    if params[:search][:value].present?
      categories = categories.where("category_translations.name like :search", search: "%#{params[:search][:value]}%")
    end
    categories
  end
© www.soinside.com 2019 - 2024. All rights reserved.