মতামত যুক্তি এড়ানো
স্ট্যান্ডার্ড পদ্ধতির সমস্যাটি হ'ল এটির if
পক্ষে দৃশ্যের বিবৃতি বা টেরিনারি আকারে যুক্তি প্রয়োজন requires যদি আপনার ডিফল্ট ক্লাসগুলির সাথে একাধিক শর্তযুক্ত সিএসএস ক্লাস মিশ্রিত থাকে তবে আপনার সেই যুক্তিটি স্ট্রিং ইন্টারপোলেশন বা ইআরবি ট্যাগের মধ্যে লাগাতে হবে।
এখানে একটি আপডেট পন্থা যা ভিউগুলিতে কোনও যুক্তি স্থাপন করা এড়িয়ে যায়:
<div class="<%= class_string(ok: @success) %>">
some message here
</div>
class_string
পদ্ধতি
class_string
সাহায্যকারী গঠিত কী / মান জোড়া দিয়ে একটি হ্যাশ লাগে সিএসএস বর্গ নাম স্ট্রিং এবং বুলিয়ান মান । পদ্ধতির ফলাফলটি ক্লাসগুলির একটি স্ট্রিং যেখানে বুলিয়ান মানটি সত্য হিসাবে মূল্যায়ন করা হয়।
নমুনা ব্যবহার
class_names(foo: true, bar: false, baz: some_truthy_variable)
# => "foo baz"
অন্যান্য ব্যবহারের কেস
এই সহায়কটি ERB
ট্যাগগুলির মধ্যে বা রেল সহায়ক যেমন ব্যবহার করা যেতে পারে link_to
।
<div class="<%= class_string(ok: @success) %>">
some message here
</div>
<% div_for @person, class: class_string(ok: @success) do %>
<% end %>
<% link_to "Hello", root_path, class: class_string(ok: @success) do %>
<% end %>
হয় / অথবা ক্লাস
ব্যবহারের ক্ষেত্রে যেখানে তিন ভাগের প্রয়োজন হবে (যেমন @success ? 'good' : 'bad'
), একটি অ্যারে পাস করুন যেখানে প্রথম উপাদানটি ক্লাস true
এবং অন্যটিfalse
<div class="<%= [:good, :bad] => @success %>">
প্রতিক্রিয়া দ্বারা অনুপ্রাণিত
এই কৌশলটি ফেসবুকের ফ্রন্ট-এন্ড ফ্রেমওয়ার্ক থেকে অ্যাড-অন নামে classNames
পরিচিত (পূর্বে হিসাবে পরিচিত classSet
) দ্বারা অনুপ্রাণিত হয়েছিল React
।
আপনার রেল প্রকল্পগুলি ব্যবহার করে
এখন পর্যন্ত, class_names
ফাংশনটি রিলে বিদ্যমান নেই, তবে এই নিবন্ধটি আপনাকে কীভাবে এটি আপনার প্রকল্পগুলিতে যুক্ত করতে বা প্রয়োগ করতে হবে তা আপনাকে দেখায়।