2012-01-14 47 views
0

我試着按照這個answer中的說明來渲染.js.erb文件中的json數據。但我得到這個錯誤:rails3:如何呈現json數據到.js視圖?

ActionView::MissingTemplate (Missing template activities/json, application/json with {:handlers=>[:erb, :builder], :formats=>[:js, :html], :locale=>[:en, :en]}. 

我有大量的數據發送給用戶,因此我想發送爲json比text/html。

這是我的控制器 'some_controller.rb':

def some_action 
    @hash = ... 
    @var = ... 
    . 
    . 

    respond_to do |format| 
     format.js { render :json } 
    end 
end 

這是我在視圖/ some_controller/some_action.js.erb視圖:

$("#some_div").html("<%=j render :partial => 'some_controller/another_action' %>"); 

這是我的another_action.html。 ERB:

<%= self.formats = ["html"] %> 
Var1 = <%= @var1 %> 
Hash1 = <%= @hash1.inspect %> 

是在上述錯誤的鏈接的答案嗎?我們不能將json數據發送到js.erb文件嗎?我試圖使用.to_json轉換變量和哈希值。例如:

@hash1 = someMethod(someParams).to_json 

但@ HASH1被渲染爲我最後html.erb一個字符串,它不能被解析,當然!有沒有我做錯了或錯過了?

另外,沒有教程可以在線獲取json在rails中的渲染,有人可以提供一些不錯的鏈接來學習和json和rails嗎?非常感謝幫助。提前致謝。

謝謝 的pR

回答

0

渲染JSON不需要.js.erb文件。所有你需要做的是

respond_to do |format| 
    format.html # renders .html.erb 
    format.json { render :json => {:hash => @hash, :var => @var} } 
end 

或類似的東西。

+0

我做了同樣的事情,但這次我得到了406個不可接受的錯誤。我的網址:domain/controller/index。請幫忙 – Ari53nN3o 2012-02-04 09:21:01