2

次のようなリンクを含む小さなHAML段落があります。

%p
  =link_to("My Disclosures", "#")
  =link_to("Create Disclosure", "#")
  =link_to("My Programs", "#") 
  =link_to("Log Out", "#")

私がやりたいのは、この「|」のようなセパレーターを配置することです。リンク間ですが、方法がわかりません。「」内のテキストの横に配置してみましたが、リンクテキストの一部になりました。行の最後にセパレーターを配置しようとすると、表示されませんでした。

リンクの後にテキストとして表示するために、どのように私が蛇行する文字を取得できるかについてのアイデアはありますか?

ありがとう!

4

3 に答える 3

5

文字列自体を独自の行に書き込むことができます。

%p
  =link_to("My Disclosures", "#")
  |
  =link_to("Create Disclosure", "#")
  |
  =link_to("My Programs", "#") 
  |
  =link_to("Log Out", "#")

または、出力文字列に追加することもできます。

%p
  =link_to("My Disclosures", "#") << '|'
  =link_to("Create Disclosure", "#") << '|'
  =link_to("My Programs", "#") << '|'
  =link_to("Log Out", "#")
于 2012-04-20T16:12:29.763 に答える
4

私もまったく同じ問題を抱えていました。これは私がそれを解決した方法です:

1)モジュールApplicationHelper内:

def links_bar(join_with = ' | ', &block)
  capture{yield}.split("\n").join(join_with).html_safe
end

2)任意のビューで:

= links_bar do
  = link_to("My Disclosures", "#")
  = link_to("Create Disclosure", "#")
  = link_to("My Programs", "#") 
  = link_to("Log Out", "#")

生成:

<a href="#">My Disclosures</a> | <a href="#">Create Disclosure</a> | <a href="#">My Programs</a> | <a href="#">Log Out</a>

私は夢中ですか?;)

ヒントをくれたSemyonPerepelitsaに感謝します。

于 2012-04-20T17:18:52.320 に答える
1

この場合、あなたは物事を間違った方法で行っています。

あなたが求めている効果を得るためのはるかに正しい方法は、少しのCSSを必要とします:

ul.nav {
  list-style:none;
  margin:0;
  padding:0
}

ul.nav li {
  margin:0;
  padding:0 0.5em;
  border-right:1px solid black
}

ul.nav li.last {
  border-right:none;
}

%ul.nav
  %li=link_to("My Disclosures", "#")
  %li=link_to("Create Disclosure", "#")
  %li=link_to("My Programs", "#") 
  %li.last=link_to("Log Out", "#")

このようにして、CSSの魔法を使用してスタイル付きリストに変換する、わかりやすく、意味的に正しく、アクセス可能で、検索エンジンに適したリンクのリストを作成できます。

私はあなたが尋ねたものとは異なる質問に答えていることを知っていますが、このユースケースに取り組むための「正しい」方法を知っておく必要があります。

于 2012-06-22T16:12:56.933 に答える