2013-07-08 3 views
0

Я не знаю, что происходит. Я просто хочу сделать форму редактирования через ajax, передав локальный частичный. мой код следующийПрохождение локальных к частичным рельсам

Вызов редактировать действие в моем licencias_controller

<td><%= link_to '<i class="icon-pencil icon-black"></i>'.html_safe, edit_licencia_path(licencia), :remote => true %></td> 

Вот мой код в licencias_controller

 def edit 
    @licencia = Licencia.find(params[:id]) 
    respond_to do |format| 
     format.js {} 
    end 
    end 

И вот мой код в edit.js.erb

$(document).ready(function(){ 

    $('#modContLicencia').replaceWith('<%= escape_javascript(render(:partial => 'edit', :locals => {:licencia => @licencia})) %>'); 
    $('#modLicencia').modal('show'); 
}); 

Так что я хочу показать данные @licencia в частичном _edit. В первый раз я нажимаю, чтобы увидеть, что его визуализировано нормально, но если я нажму на другой объект @licencia в индексе, частичный рендер будет тем же объектом @licencia. Так что объект @licencia не обновляется, когда я нажимаю другое время, чтобы отредактировать его. Что я делаю неправильно?

+1

Попробуйте с $ ('# modContLicencia') HTML ("<% = escape_javascript (рендеринг (: частичный => ' edit ',: locals => {: licencia => @licencia}))%> "); –

+0

, хотя его ответ на ваш вопрос '$ ('# modContLicencia')' должен быть уникальным. – Salil

+0

спасибо за ответ, вот в чем проблема! –

ответ

0

Ваше использование кавычек, вероятно, вызывает эту проблему для вас. Ваш edit будет обрабатываться переменной в строке replaceWith. Вы хотите, чтобы либо избежать кавычек намотав ваш edit частичного использования \' или использовать вместо следующих:.

$('#modContLicencia').replaceWith("<%= escape_javascript(render(:partial => 'edit', :locals => {:licencia => @licencia})) %>"); 
+0

спасибо, человек, это была проблема! –

+0

@MaximilianoPoggio, добро пожаловать! – vee

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