更新:我的问题得到了回答,但我写了一篇博文,详细说明了我是如何做到这一点的:http: //lathamcity.com/posts/ajaxInRails.html
我有一个页面显示基于 Ruby 对象的事物列表。我的目标是进行 Ajax 调用以获取新的 Ruby 对象,然后根据该对象更新列表。
我认为这样做的方法是使用部分。我用代码中的 Rails 实例变量使整个列表成为部分文件。然后我希望 Ajax 调用将相应的实例变量设置为新列表并重新渲染部分。
这是最终目标,但现在我正在尝试做一个非常基本的版本,我只是将一个实例变量设置为一个字符串,然后显示该字符串。
所以在我的 div 中,我有:
<% form_tag :action => :go , :method => :get, :remote => true do %>
<%= submit_tag "Go" %>
<% end %>
<div id="test"><%= render(:partial => 'test') %></div>
在(我的控制器的名称)文件夹中有一个 _test.erb 文件,views/interface
其内容只有以下行:
<%= @test %>
然后在我的控制器中,
def go
@test = "Hello You"
render :update do |page|
page.replace_html "test", :partial => "test"
end
end
当我运行它时,我得到: Missing template interface/update, application/update
我不太了解render :update
,我在谷歌的一个例子中找到了它。
我做错了什么导致这个问题,我该如何解决?我是以正确的方式解决这个问题还是有更好的方法来做到这一点?