We're only calling the `block_for` method from one place: the
`content_block` helper, and we're never passing the locale parameter to
that helper, which means we're always calling `block_for` using
`I18n.locale`.
So I'm not sure why we were doing the `locale ||=` assignment, since
`I18n.locale` doesn't return nil.
In any case, since this was added in commit c1de2dced, Ruby has added
support for arguments forwarding, so we can use it here to simplify the
code a little bit.
11 lines
471 B
Ruby
11 lines
471 B
Ruby
class SiteCustomization::ContentBlock < ApplicationRecord
|
|
VALID_BLOCKS = %w[top_links footer footer_legal subnavigation_left subnavigation_right].freeze
|
|
|
|
validates :locale, presence: true, inclusion: { in: ->(*) { Setting.enabled_locales.map(&:to_s) }}
|
|
validates :name, presence: true, uniqueness: { scope: :locale }, inclusion: { in: ->(*) { VALID_BLOCKS }}
|
|
|
|
def self.block_for(name, locale = I18n.locale)
|
|
find_by(name: name, locale: locale)&.body
|
|
end
|
|
end
|