class Language < ActiveRecord::Base
- set_primary_key :code
+ self.primary_key = "code"
- has_many :users, :foreign_key => 'locale'
- has_many :diary_entries, :foreign_key => 'language'
+ has_many :diary_entries, :foreign_key => "language"
+
+ def self.load(file)
+ Language.transaction do
+ YAML.safe_load(File.read(file)).each do |k, v|
+ begin
+ Language.update(k, :english_name => v["english"], :native_name => v["native"])
+ rescue ActiveRecord::RecordNotFound
+ Language.create do |l|
+ l.code = k
+ l.english_name = v["english"]
+ l.native_name = v["native"]
+ end
+ end
+ end
+ end
+ end
+
+ def name
+ name = english_name
+ name += " (#{native_name})" unless native_name.nil?
+ name
+ end
end