我的Ajax试图渲染它不应该的视图

时间:2010-08-16 18:13:37

标签: ruby-on-rails ruby ajax model-view-controller

所以一切正常。但是如果用户打开了firebug的控制台,他们就会看到一个错误。 :d

发送我的AJAX时:

$(".remove_qf").live("click", function(){
  $.ajax({type: "POST", url: $(this).attr("href"), data: { '_method': 'delete' }, dataType: "script"});
  return false;
})

我的控制器发射它:

def destroy
  @quick_fact = @organization.quick_facts.find(params[:id])
  @quick_fact.destroy
end

触发视图并在500:

上输出错误
Missing template quick_facts/destroy.erb in view path app/views:vendor/plugins/rails-ckeditor/app/views

奇怪但是,因为我不需要破坏视图,所以我不应该添加任何代码到我已经告诉它渲染假的代码。我之所以这么说,是因为我有类似的东西在同一个前提下工作。

任何人都知道可能导致这种情况的原因吗?

更新

的routes.rb

map.resources :organizations,
  :collection => {:live_validation => :post, :search => :get, :send_invitation_code_request => :post} do |organization|
    organization.resources :quick_facts

2 个答案:

答案 0 :(得分:1)

我不是这方面的专家,但是,我认为1.)你需要在你的ajax调用中添加一个处理程序来确定删除是否成功& 2.)您可能需要从控制器的销毁操作中添加某种成功状态消息。

答案 1 :(得分:1)

以下为我解决了同样的问题。

respond_to do |format|
    format.js { head :ok }
end

我不确定这是否比使用render :nothing => truerender :text => ""更好。