2015-07-21 56 views
2

我有一個使用angularjs的rails應用程序。在這裏我試圖從軌道控制器呈現模板並將資源傳遞給模板。但是用於顯示變量的ruby代碼與html.erb視圖中顯示的完全相同。ruby​​代碼在模板中顯示爲html

def fail 
    @order = Order.find(1) 
    render 'payments/fail' 
end 

鑑於

<%= @order.as_json %> 
+0

這是'payments/_fail.html.erb'的全部內容嗎? –

回答

0

我的猜測是,這個問題是在您的視圖文件的名稱。我想你會把它命名爲fail.html而不是fail.html.erb。如果沒有.erb後綴,Rails會將該文件解釋爲html文本,並在不解釋ruby代碼的情況下呈現它。

但是,更改文件名並不是正確的解決方案。既然你想渲染json而不是HTML,你不需要創建視圖模板,所以你應該完全刪除模板文件。

所有Rails的模型自動的有一個.as_json方法,所以你可以簡單地修改你的控制器的失敗就像方法,以便:

def fail 
    @order = Order.find(1) 
    render json: @order.as_json 
end 

此外,如果你想要做一些花哨和修改返回的JSON,你可以在模型中定義自己的as_json方法。

+0

我想要的模板,而不僅僅是對象。 –

+0

所以......我對模板文件的誤解是否正確? – vlasits

+0

nope。它是_fail.html.erb –