web-dev-qa-db-ja.com

Rails-data- *属性を持つlink_toヘルパー

可能性のある複製:
Rails content_tagヘルパーでhtml5データ属性を使用する最良の方法?

Link_toヘルパーでhtml5 data-* attrubuteを使用するにはどうすればよいですか(Rails)

APIは、このフォーマットlink_to(body, url, html_options = {})を使用する必要があると言っていますが、html_optionsに入れるとエラーが発生します

例:

link_to "whatever", @whatever_path, { class: 'my_class', data-tooltip: 'what I want' }
103
eveevans

単にそれらを渡す... Railsにはデフォルトの:dataハッシュがあります

= link_to body, url, :data => { :foo => 'bar', :this => 'that' }

1つの落とし穴-ダッシュが含まれる場合は、シンボルを引用符で囲む必要があります。

:data => { :'foo-bar' => 'that' }

更新: Rails 4では、アンダースコアが自動的にダッシュに変換されるため、次の操作を実行できます。

:data => { :foo_bar => 'that' }

あるいは、直接直接書くこともできます:

= link_to body, url, :'data-foo' => 'bar', :'data-this' => 'that'

更新2:コメントで指摘したように、Ruby 1.9+はこの構文を許可します。

{ data: { foo: "bar" } }
212
sethvargo

以下を実行して、data-属性を追加します。

link_to "Hello", hello_path, :"data-attribute" => "yeah!"
5
Robin