2014-05-20 5 views
0

Je développe une application avec Ruby on Rails (4.1) et j'utilise la gemme Globalize (version 4.0.1) pour stocker diverses traductions de mes données. Le problème est que lorsque j'utilise la méthode « globalize_fields_for » de simple_form afin de générer les champs de formulaire pour les différents endroits, je reçois l'erreur suivante:Simple_form et globalize gem

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

Voici mon point de vue (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' 

la variable "@locales" a mes lieux ([ 'el', 'fr', 'ru']

Mon modèle est le suivant:.

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 

Si j'utilise l'assistant "simple_fields_for", j'obtiens une erreur qui indique que j'ai un attribut "el" non défini (ou tout autre environnement local que j'ai créé) qui est valide car il n'y en a aucun dans mon modèle.

Je suis coincé pendant quelques heures sur cette sorte que toute aide/suggestion sera appréciée :)

Répondre

1

Vous pouvez utiliser bijou globalize3_helpers. Utilisez aide globalize_fields_for_locales [:en, :ru, :el]

+0

Quand on utilise les globalize3_helpers, vous obtenez ceci dans le terminal: ------------------- Bundler n'a pas pu trouver des versions compatibles pour bijou « globalisiez « : en Gemfile: globalize3_helpers (> = 0) rubis dépend Globalize (~> 3.0.0) rubis Globalize (4.0.2) –

+1

Avez-vous retiré la gemme Globalize du Gemfile? La gemme globalize3_helpers est un complément de la gemme globalize, donc vous devez maintenir les deux gemmes à Gemfile. J'espère que cela aide. –

+2

J'ai tout pour travailler. Voici mon gemfile: gem "friendly_id", "~> 5.0.1", gem 'i18n', '~> 0.6.11' (a dû inclure ceci pour faire fonctionner le générateur friendly_id - fonctionne également en conjonction avec la gemme globalize et gem 'globalize-accessors', 'globalize', '~> 4.0.2' (utilisez plusieurs locales pour un modèle sans faire de tonnes de colonnes), gem 'globalize-accessors', '~> 0.1.5' (Accéder facilement (lire et écrire) globaliser les champs traduits sans manipuler les paramètres régionaux gem), 'batch_translations' (nécessaire pour que globalize_fields_for fonctionne) –