Что обратная косая черта \ "... \" делает здесь в рельсах 3.1.0 и jquery? - PullRequest
0 голосов
/ 22 января 2012

Вот функция из сложных форм-форм raislcasts.com о динамическом добавлении поля в форму. Функция работает с рельсами 3.1.3 и jquery.

  def link_to_add_fields(name, f, association)
    new_object = f.object.class.reflect_on_association(association).klass.new
    fields = f.fields_for(association, new_object, :child_index => "new_#{association}") do |builder|
      render(association.to_s.singularize + "_fields", :f => builder)
    end
    link_to_function(name, "add_fields(this, \"#{association}\", \"#{escape_javascript(fields)}\")")
  end

Ассоциация является символом и должна быть. Какова цель \"...\" здесь для #{..}? Удаление приводит к ошибке.

Ответы [ 2 ]

6 голосов
/ 22 января 2012

Цель состоит в том, чтобы экранировать символы кавычек, появляющиеся внутри символов кавычек того же типа, чтобы убедиться, что строка не заканчивается этим символом

Примеры для соответствующего использования

"This is a \"quote\""
=> This is a "quote"

'This is a \'quote\''
=> This is a 'quote'

"This is a 'quote'"
=> This is a 'quote'    

'This is a "quote"'
=> This is a "quote"
3 голосов
/ 22 января 2012

Обратная косая черта используется для избежания двойной кавычки.так что вы можете использовать любое количество двойных кавычек (с префиксом обратной косой черты) внутри строки ...

Пример:

var test = "Bobby said "Hello!" to the crowd."; 
-> will give you an syntax error 

var test = "Bobby said \"Hello!\" to the crowd."; 
-> double quote for (Hello!) is escaped using backslash
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...