0

以下は、私が必要としていたものの適切な説明ではないことがわかりました。このすべての調査を通じて、私が尋ねるべきだった質問をする方法を見つけました。新しい投稿:こちら. 他の誰かに利益をもたらす場合に備えて、この質問を残してください。


blog.prefix複数の「ブログ」を有効にしてサイトを構築していますが、 fromのようなものを取得できると便利な場合がありますconfig.rbset変数を使用してインスタンス変数を使用できることは知っていますがconfig.rb、それはテンプレートで、自分がどのブログにいるのかを知る必要があり、問題が解決しないことを意味します。(すべてのブログに 1 つのレイアウトが必要であり、それぞれに 1 つのレイアウトが必要です。)

blog.prefixおよびその他のアクティベーション変数を取得して、次のconfig.rbようなレイアウトで使用する方法はありますか?

<p>The blog prefix is: <%= blog.prefix %></p>

アップデート

page doブロックにインスタンス変数を渡そうとしましたが、ページをレンダリングlocals => { :variable = value }するときに と の両方を使用しました。Error: cannot find _auto_layout

私は最初にこれをミドルマン フォーラムに投稿しましたが、Stackoverflow の方が注目される傾向があります。:-D

更新 2

それぞれに個別の変数 (たとえばblog1_prefixblog2_prefix、 、およびblog3_prefix) が必要な場合は、テンプレートからどの変数を呼び出しているかを知る必要があります。接頭辞 (または何でも) を取得しているブログを知るために、テンプレートが必要です。

私のconfig.rb中には、次のようなブロックがあります。

my_blogs = ["blog1", "blog2", "blog3"]

my_blogs.each do |my_blog|
  activate :blog do |blog|
    blog.prefix = my_blog
  end
end

上記の例のように、レイアウトがどのブログで呼び出されているかをレイアウトが認識できるようにする 1 つの変数を設定する方法はありますか。

<p>The blog prefix is: <%= blog.prefix %></p>

これは、1 つのレイアウトから 3 つのブログのそれぞれにレンダリングされます。

<p>The blog prefix is: blog1</p>

<p>The blog prefix is: blog2</p>

<p>The blog prefix is: blog3</p>

4

1 に答える 1

1

複数のブログを使用している場合、仲介者アプリケーションの「ブログ」プロパティは配列であり、取得するブログを指定するにはブログ名を使用する必要があります。

アップデート:

したがって、ブログをアクティブ化すると、次のようになります。

my_blogs = ["blog1", "blog2", "blog3"]

my_blogs.each do |my_blog|
   activate :blog do |blog|
     blog.name = my_blog
     blog.prefix = my_blog
   end
end

経由で特定のブログを評価できます

blog("blog1")

ブログにテンプレートを使用する場合、frontmatter でブログ名を指定できます。

---
pageable: true
per_page: 5
blog: blog1
---

テンプレートで "blog" 変数 (このコンテキストでは "blog('blog1')" になります) を使用して、たとえばタグを取得します (タグ ページ テンプレートを設定した場合):

<% blog.tags.each do |tag, articles| %>

この場合、「blog1」ブログの記事が取得されます

更新 2 - 最終的に解決

ブログ オプション (ブログ構成変数) にアクセスするには、たとえば必要なプレフィックス

blog("blog1").options.prefix

他のオプションと同じこと。

于 2015-01-26T06:22:22.163 に答える