Module: Bootstrap5RailsExtensions::CardHelper

Defined in:
app/helpers/bootstrap5_rails_extensions/card_helper.rb

Defined Under Namespace

Classes: CardBuilder

Instance Method Summary collapse

Instance Method Details

#render_card(data: {}, **html_options) {|builder| ... } ⇒ Object

Bootstrapのcardコンポーネントを簡潔に記述できるDSL。

使い方:

<%= render_card class: "mb-4" do |card| %>
  <% card.header class: "d-flex align-items-center" do %>
    タイトル
  <% end %>
  <% card.body class: "p-4" do %>
    本文...
  <% end %>
  <% card.footer class: "text-end" do %>
    フッター
  <% end %>
<% end %>

オプション:

class: 

Yields:

  • (builder)

Raises:

  • (ArgumentError)


23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'app/helpers/bootstrap5_rails_extensions/card_helper.rb', line 23

def render_card(data: {}, **html_options)
  raise ArgumentError, "カードは本文を定義する必要があります" unless block_given?

  builder = CardBuilder.new(self)
  yield(builder)

  html_options[:class] = class_names("card", html_options[:class])

  if data.present?
    html_options[:data] = (html_options[:data] || {}).merge(data)
  end

  (:div, **html_options) do
    builder.render
  end
end