簡體   English   中英

在AJAX通話之后,我看不到結果

[英]After AJAX call I can't see the result in my view

我使用Rails 4,基本上我正在用jQuery遍歷DOM的html網頁上搜索一個值。 我將該值存儲在一個名為key的變量中,然后我想使用該值發出如下請求: Record.find(id: key).name

我有一個用戶和一個記錄模型。 app/views/users目錄中,我有部分_form.html.erb ,其中正在使用一些JavaScript。

 var key = $('input#record_id').val(); 

而且我希望該變量在用戶控制器的方法搜索中可用,以便可以使用參數key發出請求。

所以我正在做一個看起來像這樣的AJAX調用:

 $('#example tbody').on('click','tr', function(){ var key = $(this).val(); $.ajax({ url: "/search", type: "POST", data: { key: key }, complete: function(){ console.log('success'); } }); }); 

在我的配置路由文件中,我寫了這條路由:

post '/search' => 'users#search'

在我的用戶控制器中,我編寫了這樣的方法:

 def search @record = Record.find(params[:key]) end 

然后,我創建了一個search.js.erb文件,該文件的名稱與控制器中的方法的名稱相同。 在這個文件中,我寫道:

 $('div#result').html("<%= @record.name %>"); 

但是,當我單擊表格的一個元素時,div中沒有​​任何內容

我做了很多console.log()來查看變量鍵中的內容,並且可以在其中找到正確的值。 此外,我的Ajax調用的工作方式與在控制台日志中返回“成功”一樣,在選項卡網絡中,我可以看到狀態為“ ok”的名為search的任務。

我有錯誤500,但我在方法搜索中添加了render json: 'ok'來解決

現在,我非常接近打印請求@record.name的結果,但是我找不到解決方法。

誰能給我解決方案? 歡迎任何幫助。

控制器具有默認情況下返回html的約定。 在這種情況下,您似乎要返回.js.erb部分。 為此,您需要配置控制器以返回js響應。

def search
    @record = Record.find(params[:key])
    respond_to do |format|
        format.js {}
    end
end 

response_to塊中的format.js將控制器指向您的.js.erb部分。 如果失敗,請發布服務器輸出日志的結果,我想該日志將寫入您在本地運行應用程序的任何終端/控制台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM