web-dev-qa-db-ja.com

Railsおよびhaml、link_toヘルパーにIDおよびクラスセレクターを追加する方法?

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

  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に相当するものはどれですか?

14
evanx

link_toは、hamlでもerbとまったく同じように機能します。だからこれはあなたが望むことをするでしょう:

= 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に挿入する方法の詳細: Rubyの挿入

そして、IDとクラスをlink_toに渡すことに疑いの余地がないように、ここに例があります ドキュメントから

link_to "Articles", articles_path, :id => "news", :class => "article"
#=> <a href="/articles" class="article" id="news">Articles</a>
28
Chris Salzberg

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

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

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

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

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

4
evanx