15

を使用してヘルパーにidセレクターを追加する方法を探していましたが、それは可能ですか?link_tohaml

  a .haml - %a#booked{:href => "index.haml"} Link 1    

  b .html.erb - booking.html.erb - <%= link_to "Link 1", booking_path, :id => "booked" %>

  c .haml.erb - booking.haml.erb - ...??

haml の b に相当するのはどれですか?

4

2 に答える 2

30

link_toerb とまったく同じように、haml で動作します。したがって、これはあなたが望むことを行います:

= link_to "Link 1", booking_path, :id => "booked"
#=> <a id="booked" href="/bookings">Link 1</a>

次の方法でクラス属性を割り当てることもできます。

= link_to "Link 1", booking_path, :id => "booked", :class => "some_class"
#=> <a id="booked" class="some_class" href="/bookings">Link 1</a>

ruby コードを haml に挿入する方法の詳細: Inserting ruby

そして、id とクラスを に渡すことに疑いの余地がないように、ドキュメントlink_toの例を次に示します。

link_to "Articles", articles_path, :id => "news", :class => "article"
#=> <a href="/articles" class="article" id="news">Articles</a>
于 2013-02-02T02:44:54.050 に答える
4

link_to を使用して id セレクターを haml に追加するには、2 つのハッシュを指定する必要があります。

e.g = link_to "Link 1", {booking_path, extra arg...}, {:id => 'booked'}

Ruby の重要なイディオムは詩モードです。これは、構文解析が明確な場合に括弧と中括弧を省略できる機能です。最も一般的なのは、Ruby プログラマーがメソッド呼び出しの引数を囲む括弧を省略したり、メソッド呼び出しの最後の引数がハッシュの場合に中括弧を省略したりすることがあります。したがって、 1 つの文字列引数と 1 つのハッシュ引数を取るメソッドlink_toを考えると、次の 2 つのメソッド呼び出しは同等です。

中括弧がなければ、この呼び出しが 2 つのキーを持つハッシュを渡そうとしているのか、1 つのキーごとに 2 つのハッシュを渡そうとしているのかを判断する方法はありません。したがって、詩モードは、単一のハッシュ引数があり、それが最後の引数である場合にのみ使用できます。

パターソン、デビッド。フォックス、アルマンド (2012-08-24)。長持ちするソフトウェアのエンジニアリング: SaaS とクラウド コンピューティングを使用したアジャイル アプローチ、ベータ版 (Kindle Locations 1973-1975)。ストロベリーキャニオンLLC. キンドル版。

于 2013-02-02T03:15:49.203 に答える