Ruby ERB からテーマ設定にアクセスする

こんにちは。

ERBファイルからテーマ設定にアクセスすることは可能でしょうか?

私のユースケースは以下の通りです。

Discourse Easy Footer (GitHub - discourse/Discourse-easy-footer) で設定されたフッターリンクを取得し、クローラーがフッターリンクを認識できるように、フッターのERBファイルに追加したいと考えています。

ご協力ありがとうございます。

「いいね!」 2

技術的にははい…テーマに id=5 があれば、次のようなことができます。

<%= Theme.find(5).cached_settings["my_setting_name"] %>

しかし、コアやプラグインを特定のテーマに依存させることは強くお勧めしません。テーマが変更またはアンインストールされた場合、サイト全体が完全に壊れるサーバーエラーを引き起こす可能性があります。

どのクローラーを対象としていますか?Googleですか?もしそうなら、Googleはクロール時にJavaScriptを実行します。テーマのJavaScriptはクローラービューに含まれます。重要なのは、type="text/discourse-plugin" の代わりに、単純な <script> タグを使用する必要があるということです。

したがって、次のようなものがクローラービューで機能するはずです。

<script>
  document.body.append(`<a href="${settings.my_link}">footer link</a>`)
</script>
「いいね!」 3