0

Ich habe ein Event-Modell, dass HABTM Kategorien. Die Beziehung funktioniert gut und ich kann Werte aus Kategorien ohne Probleme einfügen/abrufen.Rails 3.1, Internalisierung von Werten aus einer Ist-Beziehung?

Meine Fragen ist, gibt es eine Möglichkeit (I18n) die Werte dieser Kategorien interzationalize.

Kategorie Model

class Category < ActiveRecord::Base 
has_and_belongs_to_many :events 
end 

Ereignismodell

class Event < ActiveRecord::Base 
.... 
has_and_belongs_to_many :categories 
.... 

_form.html.haml (für Veranstaltungen)

- Category.all.each do |category| 
.field 
    = check_box_tag "category_ids[]", category.id, @event.category_ids.include?(category.id) 
    = category.name 

Antwort

0

ich die Kategorien unter der Annahme sind ziemlich fixiert (sonst du könntest wirklich keine i18n auf ihnen machen)

Eine Lösung wäre, die Kategorien in der Datenbank als Schlüssel zu speichern (mit Unterstrichen) und für jede der i18n zu Ihrem lokalen Dateien Schlüssel hinzufügen:

en.yml 

categories: 
    some_category: "Some category text" 
    some_other_category: "Some other category text" 
    ...... 

Und wenn Sie zum Beispiel tun Category.all.map(&:name) führen in ["some_category", "some_other_category", ....]

Und in der Ansicht:

- Category.all.each do |category| 
.field 
    = check_box_tag "category_ids[]", category.id, @event.category_ids.include (category.id) 
    = I18n.t("categories.#{category.name}") 

Hinweis dies keine gute Lösung, wenn Sie versuchen, diese dynamisch zu tun (wenn das der Fall ist, dann werden Sie die Übersetzungen in der d zu speichern, müssen Atabase, und this könnte helfen)

+0

Just versuchte, dass. Es funktioniert perfekt. Vielen Dank!! –

Verwandte Themen