2013-02-15 148 views
0

我正在遷移一個相當大的項目到Rails 3Rails 3中如何呈現.json.erb文件

這裏是我的控制器操作:

def recent 
    @account = Account.find(session[:account_id]) 
    render :layout => false 
end 

這裏是我的recent.json.erb文件

formatted_account = 
{ 
    :code = 1, 
    :id = @account.id, 
    :prefix = 2 
} 
formatted_account.to_json() 

我使用jQuery.getJSON得到這個數據,當我得到的迴應,這是我得到:

[{"code":1,"id":"1 "prefix":2}] 

而不是

[{code:1, id:1, prefix:2}] 

我不得不使用safe_html在代碼的一些其他部分來解決逃避這樣的,但在這種情況下的問題我無法弄清楚如何解決沒有擺脫以.json的.rb文件並以適當的方式渲染json對象。

回答

0

如果您想從模板構建json,您需要使用某種構建器,因爲ERB不會真的切割它。

JBuilder出現在新的Rails 3.2 Gemfile中。我自己並沒有使用它,但似乎很清楚用乾淨的DSL。在JBuilder github頁面上的自述文件底部還有一個鏈接列表。

RABL是另一種構建JSON的工具,也支持多種其他格式。

JBuilder
RABL

1

html_safe的伎倆:

formatted_account = 
{ 
    :code = 1, 
    :id = @account.id, 
    :prefix = 2 
} 
formatted_account.to_json.html_safe