When voting investment projects, the sidebar was rendered without the `@heading_content_blocks` being set. That resulted in a 500 error when the heading had content blocks. By extracting the logic to a component, we make sure the heading content blocks are properly set every time this code is rendered, no matter which controller is rendering the view.
18 lines
334 B
Ruby
18 lines
334 B
Ruby
class Budgets::Investments::ContentBlocksComponent < ApplicationComponent
|
|
attr_reader :heading
|
|
|
|
def initialize(heading)
|
|
@heading = heading
|
|
end
|
|
|
|
def render?
|
|
heading&.allow_custom_content && content_blocks.any?
|
|
end
|
|
|
|
private
|
|
|
|
def content_blocks
|
|
heading.content_blocks.where(locale: I18n.locale)
|
|
end
|
|
end
|