রেল কন্টেন্ট_ট্যাগ সহায়তার সাথে এইচটিএমএল 5 ডেটা অ্যাট্রিবিউট ব্যবহার করার সর্বোত্তম উপায়?


102

সমস্যাটি অবশ্যই, রুবি প্রতীক হাইফেন পছন্দ করে না। সুতরাং এর মতো কিছু স্পষ্টতই কাজ করবে না:

content_tag(:div, "Some Text", :id => "foo", :data-data_attr => some_variable)

একটি বিকল্প প্রতীক চেয়ে স্ট্রিং ব্যবহার করা হয়:

content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)

অথবা আমি কেবল বিরতি দিতে পারি:

"<div id='foo' data-data_attr='#{some_variable}'>Some Text</div>".html_safe

আমি পরবর্তীতে পছন্দ করি তবে উভয়ই কিছুটা স্থূল বলে মনে হয়। কেউ কি আরও ভাল উপায় জানেন?

উত্তর:


140

বিল্ট-ইন হেল্পারদের সাথে 3.1 টি জাহাজের কাহিনী:

http://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-tag

যেমন,

tag("div", :data => {:name => 'Stephen', :city_state => %w(Chicago IL)})
# => <div data-name="Stephen" data-city-state="[&quot;Chicago&quot;,&quot;IL&quot;]" />

এটি আসলে আমার ইউআরএলে জিনিসগুলিকে যুক্ত করে। এটি কোনও ডেটা অ্যাট্রিবিউট যুক্ত করে না।
জিম ওয়ার্টন

2
অবশ্যই এটি হয় .... তবে আপনি যদি কোনও হেল্পার ব্যবহার করছেন যা ইউআরএল হ্যাশ এবং একটি এইচটিএমএল বিকল্পের হ্যাশ উভয়ই গ্রহণ করে তবে আপনাকে উভয় হ্যাশকে স্পষ্টভাবে কোঁকড়ানো বন্ধনী rap w মুড়ে রাখতে হবে}} উদাহরণস্বরূপ LINK_TO: LINK_TO "লেবেল", {: কর্ম => blub}, {: ডেটা => {: foo বিন্যাস =>: বার},: শ্রেণি => "পরীক্ষা"}
reto

এটি কাজ করে: 'ডেটা-বিভি-নোটম্পটি-ম্যাসেজ' => "ব্যবহারকারীর নাম প্রয়োজন"
ইভান

66

আপনি কি চিহ্ন সহ উক্তি ব্যবহার করার চেষ্টা করেছেন? কিছুটা এইরকম:

:"data-foo" => :bar

1
@ রিটো - উত্তরের তারিখটি পরীক্ষা করে দেখুন))
ইমানটাস

কেন শুরুর কোলন :?
জোশুয়া পিন্টার

1
কোলন কীটি একটি প্রতীক করে তোলে।
আইমান্তাস

10

একজন সহায়ক কোনও খারাপ ধারণা নয় তবে মূলত সিনট্যাক্স সম্পর্কে আমাকে কী ধোঁকা দেওয়া হচ্ছে তার জন্য ওভারকিলের কিছুটা মনে হয়। আমি মনে করি রেলের মধ্যে এমন কিছু তৈরি হয়নি যা আমি আশা করছিলাম। আমি কেবল এটি ব্যবহার করব:

content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)

6

জিকুয়েরি এয়ার (কোডস্কুল.কম) স্তর 1, উদাহরণ 1

কোডস্কুল / প্ল্যাটফর্ম-স্বতন্ত্র সংস্করণ

<section id="tabs">
  <ul>
    <li><a href="#2012-09-27" data-flights="6">Sep 27</a></li>
    <li><a href="#2012-09-28" data-flights="5">Sep 28</a></li>
    <li><a href="#2012-09-29" data-flights="5">Sep 29</a></li>
  </ul>
</section>

রেল সংস্করণ

<section id="tabs">
  <ul>
    <li><%= content_tag(:a, "Sep 27",:href=> "#2012-09-27", :data => { :flights => "6" } ) %></li>
    <li><%= content_tag(:a, "Sep 28",:href=> "#2012-09-28", :data => { :flights => "5" } ) %></li>
    <li><%= content_tag(:a, "Sep 29",:href=> "#2012-09-29", :data => { :flights => "5" } ) %></li>
  </ul>
</section>

5

পূর্ববর্তী উত্তরগুলির উপর ভিত্তি করে তৈরি করা, এটি এখনই করার ব্যাক্তিগত উপায়:

content_tag(:div, "Some Text", id: "foo", data: { attr: some_variable })
content_tag(:div, "Some Text", id: "foo", data: { "other-attr" => some_variable })

যা উত্পন্ন করে:

<div id="foo" data-attr="some variable">Some Text</div>
<div id="foo" data-other-attr="some variable">Some Text</div>

-3

আপনি সর্বদা নিজের সহায়ক ফাংশন তৈরি করতে পারেন যাতে আপনি লিখতে পারেন

<%= div_data_tag the_id, some_text, some_data %>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.