Ruby on Rails - Remove/Replace 字符串中的一些字符

Ruby on Rails - Remove/Replace some characters in string

我使用 nested_formbootstrap 选项卡 。为了使 bootstrap tab 正常工作,我需要给每个选项卡一个 unique id,否则只有 4 个选项卡中的一个可以正常工作.

我已经能够获取每个嵌套表单输入的 id 并通过使用以下方法将其作为每个选项卡的 唯一 ID 提供:

- field_title = f.text_field :title
- id2 = field_title.match(/id="(?<id>[^"]*)"/)

在我的 bootstrap 选项卡中 我使用了这个解决方案:

.nav-tabs-custom
  %ul.nav.nav-tabs
    %li.active
      %a{"data-toggle" => "tab", :href => "#tab_1_upl_#{id2}"} Upload
    %li
      %a{"data-toggle" => "tab", :href => "#tab_2_url_#{id2}"} link
    %li
      %a{"data-toggle" => "tab", :href => "#tab_3_lib_#{id2}"} image library

  .tab-content
    %div{id: "tab_1_upl_""#{id2}", class: " tab-pane active"}
      image

    %div{id: "tab_2_url_""#{id2}", class: " tab-pane"}
      link

    %div{id: "tab_3_lib_""#{id2}", class: " tab-pane"}
      library

但现在的问题是,锚点的 id 就像:

id=" #tab_2_url_id="table_choices_attributes_1464338477560_title" "

如您所见这部分:="table_choices_attributes_1464338477560_title" 是这里的问题并且阻止 选项卡 正常工作。

如何只获取 id 中的 text 或仅替换 = "

我已经尝试使用 gsubtrtr! 并收到错误 undefined method

感谢您的帮助。

trgsub 不能与变量一起使用。所以我所做的是在字符串的外部使用它,如代码blow:

%div{id: "tab_1_upl_""#{id2}".tr('"=', ''), class: " tab-pane active"}