2014-01-13 4 views
0

У меня есть файл «destroy.js.erb» со следующим содержанием:Простой js.erb в Rails 4

alert(<%=j @menu.id %>); 

Но этот код не работает; У меня есть исключение из-за синтаксической ошибки. Как я могу это исправить? Благодарю.

+2

Можете ли вы предоставить стек ошибок. –

ответ

0

Поскольку escape_javascript (j) пытается вызвать gsub от вашего @menu.id

escape_javascript:

def escape_javascript(javascript) 
    if javascript 
    result = javascript.gsub(/(\|<\/|\r\n|\342\200\250|\342\200\251|[\n\r"'])/) {|match| JS_ESCAPE_MAP[match] } 
    javascript.html_safe? ? result.html_safe : result 
    else 
    '' 
    end 
end 

Если вы действительно хотите использовать escape_javascript:

alert(<%=j @menu.id.to_s %>); 

иначе (без escape_javascript):

alert(<%= @menu.id %>); 
0

Вам не нужно использовать j помощник, если вы просто выводит целое число

alert(<%= @menu.id %>); 

Если у вас есть строка, то j помощник больше подходит. Если вы хотите принудить свой идентификатор к строке, используйте to_s

Смежные вопросы