Module: DataMapper::Is::Translatable
- Defined in:
- lib/dm-translatable.rb
Overview
In order to made the model Translatable, an additional fields should should be added first to it. Here is an example of it might be implemented:
Examples:
class TranslatedNews
include DataMapper::Resource
property :id, Serial
attr_accessible :title, :content
end
class News
include DataMapper::Resource
property :id, Serial
property :author_id, Integer, required: true
is :translatable do
translatable_property :title, String, required: true, unique: true
translatable_property :content, Text, required: true
translatable_model TranslatedNews
translatable_origin :origin_id
end
end
An example of application:
news = News.create :translations => [{title: "Resent News", content: "That is where the text goes", locale: "en"}]
news.translations.create title: "Заголовок", content: "Содержание",locale: "ru"
news.content
# => "That is where the text goes"
::I18n.locale = "ru"
news.content
# => "Сюди идет текст"
::I18n.locale = "de"
news.content
# => nil
::I18n.locale = ::I18n.default_locale
news.content
# => "That is where the text goes"
Defined Under Namespace
Modules: ClassMethods, InstanceMethods
Instance Method Summary collapse
Instance Method Details
#is_translatable ⇒ Object
65 66 67 68 69 70 71 72 |
# File 'lib/dm-translatable.rb', line 65 def is_translatable extend DataMapper::Is::Translatable::ClassMethods include DataMapper::Is::Translatable::InstanceMethods translatable_define_hash yield translatable_register end |