好的,這是另一個沮喪的練習。我不能爲了我的生活找出什麼是錯的。getJson未知的密鑰,但它正在發送
控制器:
class MapController < ApplicationController
layout "map"
def index
if params.has_key? :grade
@students = Student.find(:grade => params[:grade])
@subjects = Subject.where(:grade => @students.map(&:grade))
else
@students = Student.all
@subjects = Subject.all
end
@json = @students.to_gmaps4rails do |student, marker|
marker.infowindow render_to_string(:partial => "/map/infowindow", :locals => {:student => student})
marker.title "#{student.name}"
marker.json({:address => student.full_address, :grade => student.grade, :subjects => student.subjects})
end
respond_to do |format|
format.html
format.xml {render :xml => @subjects.to_xml}
format.json {render :json => @subjects.to_json}
end
end
end
的CoffeeScript:
jQuery ->
$(".mapDataGrade").append "<option value=-1>-</option>"
$(".mapDataGrade").append "<option value=#{i}>#{i}</option>",
i for i in [8..12]
$(".mapDataSubject").append "<option value=-1>-</option>"
grade = "grade": "#{$('.mapDataGrade').val()}", tagmode: "any", format: "json"
$.getJSON "map.json",
grade,
(data)->
console.log(data)
$('.mapDataSubject').find('option').remove().end()
$(".mapDataSubject").append "<option value=-1>-</option>"
$.each data.items, (i,item) ->
$(".mapDataSubject").append "<option value=#{i}>#{i}</option>"
現在第一部分工作完全正常,其.getJson不是。在第一次頁面加載時,它返回一個內部服務器錯誤(500),這是可以理解的,因爲返回的是-1,但仍然不能原諒console.log(data)記錄學生數據的原因主題。我覺得這很令人費解。另外,爲什麼控制器沒有看到明顯正在發送的關鍵「等級」?此外,還有另一種方法(讀得更好)來測試params散列中的鍵的存在嗎?簡而言之,這裏有什麼不對,這樣才能真正起作用?
TIA
開始GET「/map.json?grade=11」爲127.0.0.1於2012-12-20 12:01:50 -0700 通過MapController處理#index爲JSON 參數:{「grade」=>「 11「} 在193毫秒內完成500次內部服務器錯誤 參數錯誤(未知鍵:等級): app/controllers/map_controller.rb:6:在'索引' – SteveMustafa
由於某種奇怪的原因,我無法添加另一行評論。但以上是終端日誌中的直接副本和貼子。年級在那裏,但我不知道發生了什麼阻止它看到它。 – SteveMustafa
對於這個問題可能更容易添加,評論不會很好地處理這樣的事情。 –