2012-04-08 29 views
2

Ich benutze die Globalize 3 Juwel wie in Ryan Bates Railscasts gesehen, und alles funktioniert gut. Ich muss wissen, wie man die Daten durchsetzt. Derzeit habe ich eine Tabelle monthly_post_translations mit dem folgenden Schema namensSeeding Übersetzungstabelle, die kein Modell hat, Schienen App

schema.rb

create_table "monthly_post_translations", :force => true do |t| 
    t.integer "monthly_post_id" 
    t.string "locale" 
    t.text  "body" 
    t.datetime "created_at" 
    t.datetime "updated_at" 
end 

Ich brauche Samen Daten zu dieser Tabelle hinzugefügt werden, aber es ist nicht ein Modell mit interagieren muss, so wie tue ich es?

Hier ist mein Strom seeds.rb das funktioniert nicht

seeds.rb

# Monthly Posts 
    MonthlyPost.delete_all 

monthlypost = MonthlyPost.create(:body => "Monthly Post Text") 


#Monthly Posts Spanish Translation 
monthlytranslation = MonthlyPostTranslation.create(:body => "Spanish Translation of monthly post text", 
     :monthly_post_id => monthlypost.id, 
     :locale => "es") 

Aber die monthly_post_translation Tabelle nicht ein Modell, das ich mit in Wechselwirkung treten kann, so dass ich die Fehler

uninitialized constant MonthlyPostTranslation 

Irgendwelche Gedanken darüber, wie ich diese Seedaten richtig hinzufügen kann?

Antwort

4

Ab documentation durch Eingabe von translates :<attribute_name_here> erhalten Sie das generierte Modell mit dem Namen MonthlyPost::Translation. Die Antwort lautet also: Verwenden Sie die Instanz-Sammlung, um alle Übersetzungen für die Entität zu erstellen oder aufzulisten:

monthlypost = MonthlyPost.create(:body => "Monthly Post Text") 


#Monthly Posts Spanish Translation 
monthlytranslation = monthlypost.translations.create(:body => "Spanish Translation of monthly post text", 
     :locale => "es") 
+0

Das hat tatsächlich funktioniert, vielen Dank. 1 Frage, wo befindet sich das MonthlyPost :: Translation-Modell in meiner Rails-App? – ruevaughn

+0

Es wird für Sie generiert, wenn die 'MonthlyPost'-Klasse geladen ist. Der genaue Ort steht unter 'transmitted' Methode: [Quelle] (https://github.com/svenfuchs/globalize3/blob/master/lib/globalize/active_record/class_methods.rb#L41) –