我在使用rails3渲染Javascript時遇到了麻煩(如果這是相關的,我使用JQuery並且它工作正常,因爲它在應用程序的許多其他部分中使用)而不是html。Rails Ajax:.js.erb呈現爲文本,而不是JS
我有什麼: 我一看,我有此鏈接:
<%= link_to 'Edit', edit_user_repreneur_path(@user_repreneur, :format => :js), :remote => true %>
首先,我真的不明白爲什麼我要補充:格式=>:JS得到控制使用JS視圖,而不是HTML視圖。 這裏是控制器的代碼:
def edit
@user_repreneur = UserRepreneur.find_by_id_view(params[:id])
respond_to do |format|
format.js
format.html
end
end
在控制器上課的時候,我有這樣的一行:
respond_to :js, :html
我edit.js.erb文件包含一個警告一行。 但是,在渲染頁面時,JS會呈現爲文本,因此不會執行。 我試圖format.js線改爲
format.js { render :layout => false }
但它不會改變任何東西。 我想我失去了一些東西,但我真的不知道什麼...
非常感謝,歡呼!我不知道這是否有幫助,但在我的鏈接助手中添加:format =>:js位之前,視圖總是以HTML格式呈現,如果我評論了format.html行,我在服務器端出現了406 Not Acceptable錯誤。
它確實是通過ajax請求發送的嗎?你可以檢查控制檯或螢火蟲控制檯 – 2011-03-15 11:58:31
在控制器的開始部分有respond_to:js,:html意味着你期望在你的動作中使用respond_with(而不是respond_to)。我想知道這個冗餘是否會導致問題 - 你是否嘗試擦除控制器中的第一行?您也不需要在視圖中添加:format =>:js – 2011-03-15 12:08:49
在Chrome控制檯中,當我點擊鏈接時,我看到一個GET請求,其中包含304響應代碼和文本/ JavaScript類型。 此外,評論控制器中的行不會改變任何東西,但感謝您的信息:)! 我知道我不應該需要在視圖中指定格式,但否則它總是呈現HTML ...奇怪。 – Elhu 2011-03-15 12:13:33