我有一個運行Rails 2.3.5的應用程序,它有很多JSON API。如何覆蓋Rails 2.3中的RJS MIME類型?
承包商進來了,在應用程序上做了一些工作,並在幾個地方使用了RJS。一些使用RJS作爲主要網站的控制器操作也需要成爲API的一部分。
問題是JSON API請求觸發RJS響應,這不是我想要的。我希望RJS響應發生在瀏覽器中,但是當它是一個API請求(通過使用「application/json」Accept和Content-Type標頭進行區分)時,我希望它只發送API響應。
從我可以告訴,Rails的觸發任何MIME類型包括JavaScript的一個RJS響應,即
文/ JavaScript的應用程序 /JSON
等
有沒有一種辦法強制RJS只響應文本/ JavaScript?還是有更好的方法來解決這個問題?
爲了使它更清楚,我有一些代碼,看起來像這樣:
def show
@dashboard = @user.dashboard
respond_to do |wants|
wants.html
wants.json { render :json => @dashboard }
end
end
麻煩的是,也有在該控制器視圖文件夾show.rjs模板。當有人點擊API時,我想讓它呈現json結果,就像我上面列出的那樣,但是它會呈現show.rjs模板。
如何確保API客戶端能夠獲得我想要的json結果,並仍然讓RJS模板爲網站上的人員呈現?