【问题标题】:Attributes translated with globalize gem do not work with search form使用 globalize gem 翻译的属性不适用于搜索表单
【发布时间】:2019-09-27 08:22:22
【问题描述】:

我正在使用这个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】:

    我终于找到了解决办法,很简单:

      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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-04
      • 2017-03-27
      • 2016-05-22
      相关资源
      最近更新 更多