2011-06-29 45 views
1

我正在处理一个基本的一对多关系,我正在删除多条记录。模型是“地点”和“search_terms”,其中的地方has_many search_terms。当我创建一条新记录时,视图被更新并且新的search_term附加到列表中。但是,当我删除search_term记录时,即使删除记录并为Place运行“show”方法,视图也不会刷新。在删除Rails 3中的记录后,刷新的视图不会更新

我是很新的轨道3,从而无法真正弄清楚什么怎么回事...

干杯, Gearoid。

编辑:SEARCH_TERMS控制器破坏方法:

​​

的地方控制器显示方法:

def show 
    @place = Place.find(params[:id]) 

    respond_to do |format| 
     format.html # show.html.erb 
     format.xml { render :xml => @place } 
    end 
end 

回答

0

我可能会误解你,你可以发布你的控制器的代码?

这是发生在ajax上吗?如果没有,你可以重定向到Show而不是重新渲染它吗?无论如何,这可能是用户的首选体验。

UPDATE

好吧,如果这是怎么回事了阿贾克斯,那么问题就简单了。您的destroy操作仅预期正常的浏览器事件并执行redirect_to调用。 ajax调用不知道如何处理它,只是坐在那里。你可能会看到类似Firebug的重定向代码。

我对jquery-rails不太熟悉(我更喜欢自己写所有的js,因为我是肛门)。你可以有destroy动作返回一个js格式像这样:

def destroy 
    @search_term = SearchTerm.find(params[:id]) 
    @search_term.destroy 

    @place = Place.find(params[:place_id]) 
    respond_to do |format| 
     format.html { redirect_to place_path(@place) } 
     format.js { render :nothing => true } 
    end 
end 

,这将使AJAX调用者OK信号,它已经完成了它的事情。尽管如此,您的JavaScript仍然必须智能地处理此响应,例如从DOM中移除元素。

+0

在编辑中的上述代码。我敢肯定删除调用通过AJAX默认在Rails 3中传递(顺便说一下,我使用jquery-rails gem) – Ger

相关问题