Chrome浏览器无法找到偏见

时间:2011-02-17 19:35:20

标签: ruby-on-rails google-chrome

我在控制器中使用以下内容,使用ajax将任务添加到项目模型中。

def task_add
    project = Project.find(params[:project])
    @task = ProjectTask.new(:description => params[:description])
    project.project_tasks << @task
    render :partial => 'task'
end

和我的ajax电话:

$('#task-add').click(function(){
    var taskDesc = $('#task-description').val();

    $.ajax({
        type: "POST",
        url: "/project_task_add",
        data: ({project:<%= @project.id %>, description:taskDesc}),
        success: function(data){
            var data = $('<div/>').append(data);
            $('#tasks').append($('#new-task', data).html());
        }
    });         
});

在Firefox中运行正常,但Chrome会出现以下错误:

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

深入挖掘chrome dev工具,我发现以下响应:

<h1>Template is missing</h1>
<p>Missing partial projects/task with {:locale=&gt;[:en, :en], :formats=&gt;[:js,            :&quot;*/*&quot;], :handlers=&gt;[:erb, :rjs, :rhtml, :builder, :rxml]} in view paths &quot;/home/user/apps/my_app/app/views&quot;, &quot;/usr/lib/ruby/gems/1.8/gems/devise-1.1.5/app/views&quot;</p>

_task.html.erb部分存在于/ views / projects /下,Firefox渲染得很好。我不明白Chrome中有什么不同......有什么想法吗?

2 个答案:

答案 0 :(得分:0)

这是期待您的部分被称为app/views/projects/task.js.erb(由错误的formats部分计算,而不是app/views/projects/task.html.erb。您可能只有部分html定义

答案 1 :(得分:0)

请求的方法是:js。 我认为rails试图渲染_task.js.rjs而不是_task.html.erb。 你可以明确它

render :partial => 'projects/task.html.erb'

但我认为你可以改变视图来生成请求,这样他们就没有params方法js或渲染ajax响应。

如果您需要更多帮助,请发布您的观点!