Попытка обновить div, который загружен index.html.erb файлом js.erb в rails - PullRequest
2 голосов
/ 03 марта 2012

Я очень новичок в рельсах, и еще новее в попытках запустить Ajax.До этого момента мне удавалось заставить работать простой ajax-вызов для обновления div, когда я щелкаю ссылку show, отображая частичное в js.erb.К вашему сведению, я использую Rails 3.1.Этот тип вещей работает для меня без проблем:

Моя ссылка:

<td><%= link_to "Show", widget, :remote => true %></td>

В контроллере:

def show
  @widget = Widget.find(params[:id])
    respond_to do |format|
      format.html { redirect_to @widget }
      format.js 
    end  
  end

В show.js.erb

$("#myDiv").html("<%= escape_javascript(render('widget_detail')) %>")

В _widget_detail.html.erb

<div id="myDiv">
 <p>
  <strong>Address:</strong>
  <%= @widget.address %>
 </p>
</div>      

Проблема, с которой я сейчас сталкиваюсь, заключается в том, что у меня есть раздел сайта, который отображается index.html.erb,Я не могу понять, как заставить index.html.erb обновляться с помощью вызова ajax.Я думаю, что должен быть какой-то другой java-скрипт, который мне нужно знать, потому что он не работает, если вы не вызываете частичное из того, что я могу сказать.

$("#content").html("<%= escape_javascript(render('index')) %>")

Я могу заставить его делать то, что я хочуделайте, если я сделаю еще один частичный фрагмент и просто выведу то же самое, что есть в моем index.html.erb.Так, например, я мог бы назвать это _junk.html.erb и сделать это:

$("#content").html("<%= escape_javascript(render('junk')) %>")

Это будет работать просто отлично.Я уверен, что упускаю что-то простое, или просто нужно сделать что-то другое в файле .js.erb, но я не уверен, что.Для меня не имеет смысла, что мне нужно иметь один и тот же код в двух местах.

1 Ответ

0 голосов
/ 03 марта 2012

Я думаю, что вы должны отделить код, который будет повторно использоваться в частичном, а затем отобразить частичное в вашем index.html.erb.Затем вы можете использовать частичное, когда вам нужно обновить этот раздел.

...