Я очень новичок в рельсах, и еще новее в попытках запустить 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, но я не уверен, что.Для меня не имеет смысла, что мне нужно иметь один и тот же код в двух местах.