首先 - 我有同樣的錯誤讀取所有其他線程對SO。他們中沒有人幫助我一點。無法讀取未定義紅寶石的財產「頂」 on Rails項目
流量:
- 在新客戶頁面,填寫字段,然後點擊保存在customer_controller
- 斷火的方法來創建
渲染JSON與回頁面信息:
format.json {render:json => res.to_a}
Page獲取數組:
陣列[2]新:851
這是正確格式的陣列。
錯誤:
Uncaught TypeError: Cannot read property 'top' of undefined
追根溯源:
$.ajax({
type : "POST",
url : "/customers",
data : dataString,
dataType : "json",
success : function(data) {
console.log(data);
// data = data[0];
// console.log(data);
if (data[0] == 'error' || data[0] == 'i') {
$("#flash_message").addClass("alert-error");
$("#flash_message").html("<p>" + data[1] + "</p>");
$('html,body').animate({
scrollTop : $("#flash_message").offset().top
}, 'slow');
} else {
$("#flash_message").addClass("alert-success");
$("#flash_message").html("<p>" + data[0] + "</p>");
$('html,body').animate({
scrollTop : $("#flash_message").offset().top
flash_message吧?讓我們來看看:
<% flash.each do |key, value| %>
<div id="flash_message" class="alert alert-<%= key %>">
<%= value %>
是的,絕對是一個flash_message id在那裏。
但是,我們使用的佈局 - 所以必須有一個時機的問題。 Ajax代碼是admin.html.erb佈局,我們正在完成我們從customer.html.erb視圖中的新客戶採取行動。客戶控制器有:
layout 'admin', :except => [:show]
「秀」在這裏是不是我們問題的方法 - 我們正在使用的「創造」
Processing by CustomersController#create as JSON
那麼,爲什麼在藍血腥大火我們不知道是什麼「flash_message」是?
所有這些東西發生在文檔'load'事件觸發後? – Cherniv
好吧,在這種情況下,文檔'就緒',但是,之後。 – notaceo