【问题标题】:Simple_form and globalize gemSimple_form 和全球化 gem
【发布时间】:2014-07-15 03:17:53
【问题描述】:

我正在使用 Ruby on Rails (4.1) 开发一个应用程序,并使用 Globalize gem(4.0.1 版)来存储我的数据的各种翻译。问题是,当我使用 simple_form 的“globalize_fields_for”方法为各种语言环境生成表单字段时,出现以下错误:

undefined method `globalize_fields_for' for #<SimpleForm::FormBuilder:0x00000106824928>

这是我的观点(haml):

h3.title New Static Page
%hr

= simple_form_for [:admin, @static_page] do |f|
  %dl.tabs{ "data-tab" => "" }
    - @locales.each_with_index do |lang, index|
      - klass = index == 0 ? 'active' : ''
      %dd{ class: klass }= link_to t("admin.languages.#{lang}"), "#panel2-#{index + 1}", class: "#{lang} flag"
  .tabs-content
    - @locales.each_with_index do |lang, index|
      - klass2 = index == 0 ? 'active' : ''
      .content{ class: klass2, id: "panel2-#{index + 1}"}
        = f.globalize_fields_for lang.to_sym do |g|
          = g.input :title, label: "Title"
          = g.cktext_area :body, rows: 15, class: 'ckeditor'

    = f.button :submit, t('admin.buttons.submit'), class: 'new-submission'

“@locales”变量有我的语言环境(['el', 'en', 'ru']。

我的模型如下:

class StaticPage < ActiveRecord::Base

  extend FriendlyId
  friendly_id :title, use: [:slugged, :history]

  # Validations

  validates :title, presence: true, length: { maximum: 100 }
  validates_presence_of :body

  # Associations
  translates :title, :body
  has_many :translations
  accepts_nested_attributes_for :translations
end

如果我使用“simple_fields_for”帮助程序,则会收到一条错误消息,指出我有未定义的属性“el”(或我创建的任何其他语言环境),这是有效的,因为在我的模型中没有声明.

我被困了几个小时,所以任何帮助/建议将不胜感激:)

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 simple-form globalize


    【解决方案1】:

    您可以使用 gem globalize3_helpers。使用助手globalize_fields_for_locales [:en, :ru, :el]

    【讨论】:

    • 当使用 globalize3_helpers 时,您会在终端中看到:-------------------- Bundler could not find compatible versions for gem "globalize ":在 Gemfile 中:globalize3_helpers (>= 0) ruby​​ 依赖于 globalize (~> 3.0.0) ruby​​ globalize (4.0.2)
    • 您是否从 Gemfile 中删除了 globalize gem? globalize3_helpers gem 是 globalize gem 的补充,因此您必须在 Gemfile 中维护这两个 gem。希望对您有所帮助。
    • 一切正常。这是我的 gemfile: gem "friendly_id", "~> 5.0.1", gem 'i18n', '~> 0.6.11' (必须包括这个才能让friendly_id生成器工作 - 也可以与 globalize gem 和globalize-accessors gem), gem 'globalize', '~> 4.0.2' (让我们为一个模型使用多个语言环境,而无需制作大量列),gem 'globalize-accessors', '~> 0.1.5' (轻松访问(读取和写入)全球化翻译字段,而无需摆弄语言环境 gem),'batch_translations'(需要这个才能让 globalize_fields_for 工作)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多