2014-03-07 193 views
-1

我想從當前使用jQuery呈現視圖。我爲我的項目使用flexigrid,我想爲信息按鈕編碼。查看不渲染

這是我的看法。使用jquery我打電話給以下,

var name = $('.trSelected .sorted div').html(); 
$.post("/contacts/display_info/", {file_as : name}); 

我的控制器是以下。也嘗試過調試。

def display_info 
     @contact = Contacts.find_by_file_as(params[:file_as]) 
     puts "---------------" 
     puts @contact.id 
     puts "---------------" 
     render(:action => 'display_info' , :id => @contact.id) 
    end 

這裏是我的控制檯:

enter image description here

無法弄清楚是什麼問題。請幫忙!

+0

爲什麼你不使用'redirect_to contact_path(@contact)'而不是'render(:action =>'contacts',:id => @ contact.id)' – rony36

+0

@ rony36它仍然顯示'500 internal服務器錯誤'。 –

+0

有沒有「接觸」行爲的任何看法? – rony36

回答

0
  1. 如果你正在做一個ajax請求,它應該最好是JSON
  2. 對於Json,檢查聯繫人文件夾中名爲contacts.json.erb的文件。
  3. 您可以嘗試使用遠比ajax/json請求更真實,更乾淨和更好的選項。

檢查:http://railscasts.com/episodes/205-unobtrusive-javascript

嘗試在你的控制器將

respond_to do |format| 
    format.html 
    format.json { render :json=> {:success => true, :id => @contact.id } } 
end 

這樣的事情。

+0

的WEB BROWSER..kind沒有沒有什麼JSON的那個文件夾中。 –

+0

@FredoCorleone wat如果你在URL中輸入網址,你會發生? –

+0

@sahil你可以詳細說明一下嗎?也許正確我的代碼? 它必須通過jquery,因爲我使用flexigrid –

0

layout,請加:

<%= csrf_meta_tag %> 

而當你posting確保您發送:

"authenticity_token": "<%= form_authenticity_token %>" 

更具體:

$(document).ajaxSend(function(e, xhr, options) { 
    var token = $("meta[name='csrf-token']").attr("content"); 
    xhr.setRequestHeader("X-CSRF-Token", token); 
}); 

感謝。

+0

的WEB BROWSER..kind我已經在「頭部」有<%= csrf_meta_tag%>。我無法弄清楚添加第二行的地方。幫幫我。 –

+0

好的,請提供你如何「發佈」的代碼。 – rony36

+0

我在帖子中提到過它。 –

0

問題是,你正在做一個Ajax請求,但你沒有做任何事情。你需要一個回調來捕獲請求的響應,並以某種方式處理它。

喜歡的東西:

$.post("/contacts/display_info/", {file_as : name}, function(data) { 
    // `data` will be the HTML returned by the server 

    // If for example you want to render this HTML on your page, you may want something like: 
    $('#my_fancy_div').html(data); 
}); 

你也想改變你的控制器動作要render layout: false,假設你只想呈現在視圖中的HTML,而不是周圍的應用佈局。

+0

我想將控件移動到'/ contacts/display_info/name_of_the_contact'。我怎麼做。我很抱歉,如果我的問題是錯的,但可以做到沒有Ajax? –

+0

我不知道你想怎麼辦呢... – sevenseacat

+0

@sevenseacat他說它呈現在軌控制檯什麼,但它不是要去通奇怪 –