如何在 Simple_Form collection_radio_buttons 上使用集合的其他方法?

How to user other methods of the collection on a Simple_Form collection_radio_buttons?

我在 Rails Ruby 的 simple_form 表单上有一个 collection_radio_buttons。

代码:

    <%= f.collection_radio_buttons :player_out, @lineup.lineup_players.starting_players, :id, :name, label: "Player to get out?",
        collection_wrapper_tag: :fieldset, collection_wrapper_class: "form-group radio_buttons optional substitution_suggestion_player_out",
        item_wrapper_tag: :div, item_wrapper_class: "form-check" do |player| %>
      <%= player.radio_button %>
      <%= player.label { tag.div(player.text) } %>
    <% end %>

我有两个问题:

1 - 我的标签 ("label: 'Player to get out?'") 不工作。我做错了什么?

2 - 如何调用集合的其他方法?比如获取玩家的头像。 :

 <%= player.label { tag.div(image_tag(player.avatar) player.text) } %>

提前致谢。

大卫

如果你想用单选按钮显示图像,你可以这样做,

<%= f.collection_radio_buttons :player_out, @lineup.lineup_players.starting_players, :id, :name do |player| %>
  <%= player.radio_button %>
  <%= player.label do %>
    <%= player.text %>
    <%= image_tag player.avatar, height: '100px', width: '100px' %>
  <% end %>
<% end %>

除此之外,通过单独创建元素,您可以轻松地向它们应用 class。

为了将 html 代码推送到 collection_radio_buttons 的标签块,我最终创建了一个模型方法,return 我想使用 html,并将该方法用作集合的文本方法。

在我的模型中:

  def html_to_radio_button
    html = ""
    html << "<a class='avatar rounded-circle mr-3' style='background:none !important;'>"
    html << "<img alt='Image placeholder' src='#{ApplicationController.helpers.url_for_player_avatar(self.player)}'>"
    html << "</a>"
    html << "<div class='media-body'>"
    html << "<span class='mb-0 text-sm'>#{self.name}</span><br>"
    html << "<small class='text-muted'>#{self.player.position}</small>"                             
    html << "</div>"
    html.html_safe
  end

在表格上:

<%= f.collection_radio_buttons :player_out,lineup.lineup_players.starting_players, :id, :html_to_radio_button, collection_wrapper_tag: :fieldset, collection_wrapper_class: "form-group radio_buttons optional substitution_suggestion_player_out", item_wrapper_tag: :div, item_wrapper_class: "form-check" , label: 'Quem Sai?' do |player| %>
  <%= player.radio_button(class: "form-check-input radio_buttons optional") %>
  <%= player.label(class: "collection_radio_buttons", style: "cursor: pointer;") {content_tag(:div, player.text, class: "media align-items-center")} %>
<% end %>