0

Я использую nested_form вместе с Загрузочный вклад. Чтобы сделать загрузочный вкладка работать должным образом Мне нужно дать каждой вкладке уникальный id, иначе только одна из 4 вкладок будет работать правильно.Ruby on Rails - Удалить/заменить некоторые символы в строке

Я был в состоянии получить id каждого вложенной формы ввода и дать ему в качестве уникального идентификатора для каждой вкладки с помощью этого:

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

В моей вкладки бутстраповской Я использовал этот решение:

.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 или просто заменить = "?

Я пробовал с gsub, tr, tr! и получения ошибки undefined method.

Спасибо за помощь.

+0

Пробовал это? http://stackoverflow.com/questions/19637677/ruby-remove-characters-from-a-string –

+0

Да, и я получаю ошибку 'undefined method" tr "'. Я пробовал это: 'id2 = field_title.match (/ id =" (? [^ "] *)" /). Tr ("=", '') ' – Rubioli

ответ

0

tr или gsub не может использоваться с переменной. Так что я сделал, чтобы использовать его вне строки, как код удара:

%div{id: "tab_1_upl_""#{id2}".tr('"=', ''), class: " tab-pane active"} 
Смежные вопросы