Sha256: dce6ba823e0e5d41ca499e74bdf662ddd6bcc887978493cec59a23d3bd85240c
Contents?: true
Size: 1.65 KB
Versions: 1
Compression:
Stored size: 1.65 KB
Contents
module Mobility module Backend =begin Implements the {Mobility::Backend::Column} backend for ActiveRecord models. You can use the +mobility:translations+ generator to create a migration adding translatable columns to the model table with: rails generate mobility:translations post title:string The generated migration will add columns +title_<locale>+ for every locale in +I18n.available_locales+. (The generator can be run again to add new attributes or locales.) @note This backend disables the +locale_accessors+ option, which would otherwise interfere with column methods. @example class Post < ActiveRecord::Base translates :title, backend: :column end Mobility.locale = :en post = Post.create(title: "foo") post.title #=> "foo" post.title_en #=> "foo" =end class ActiveRecord::Column include Backend include Backend::Column autoload :QueryMethods, 'mobility/backend/active_record/column/query_methods' # @!group Backend Accessors # @!macro backend_reader def read(locale, **_) model.read_attribute(column(locale)) end # @!group Backend Accessors # @!macro backend_writer def write(locale, value, **_) model.send(:write_attribute, column(locale), value) end # @!group Backend Configuration def self.configure!(options) options[:locale_accessors] = false end # @!endgroup setup do |attributes, options| mod = Module.new do define_method :i18n do @mobility_scope ||= super().extending(QueryMethods.new(attributes, options)) end end extend mod end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mobility-0.1.12 | lib/mobility/backend/active_record/column.rb |