Браузер Chrome не может найти частичный

50
5

Я использую следующее в своем контроллере для добавления задач в мою модель проекта с помощью 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=>[:en, :en], :formats=>[:js, :"*/*"], :handlers=>[:erb, :rjs, :rhtml, :builder, :rxml]} in view paths "/home/user/apps/my_app/app/views", "/usr/lib/ruby/gems/1.8/gems/devise-1.1.5/app/views"</p>

Партия _task.html.erb существует в /views/projects/, и Firefox делает ее просто прекрасной. Я не понимаю, что другое в Chrome... любые идеи?

спросил(а) 2011-02-17T22:35:00+03:00 9 лет назад
1
Решение
91

метод запроса: js.
Я думаю, что рельсы пытаются сделать _task.js.rjs не _task.html.erb.
Вы можете указать It


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

но я думаю, что вы можете изменить представление из того, какой запрос был сгенерирован, чтобы у них не был метод params js. Или визуализируйте ответ ajax.


опубликуйте свое мнение, если вам нужна дополнительная помощь!

ответил(а) 2011-02-17T23:37:00+03:00 9 лет назад
35

Ожидается, что ваш частичный вызов будет называться app/views/projects/task.js.erb (как выяснено частью formats вашей ошибки, а не app/views/projects/task.html.erb). Вероятно, только частичное определение html.

ответил(а) 2011-02-17T23:27:00+03:00 9 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема