jbuilder 輸出json問題


#1

各位大大想請問一下,
我目前想在網站的後台使用jbuilder輸出index的json格式
但是在輸出json的頁面就出現了MissingTemplate的問題,如下圖

而這個問題只出現在後台,前台就可以正常輸出json格式(前台layout是用原本的application,後台是後來加上的dashboard)
所以想請問各位大大該如何克服這個問題
感謝 <(_ _)>


#2

…沒有 code 就只能觀落陰

不過你的問題應該是出現在 layout & render partial 的 path 上,可以改用類似

<%= render '/common/css' %>

且必須在

%RAILS_PATH%/app/views/common/_css.html.erb

有這檔案才行,簡單的來說就是把相對位置改成絕對位置,這樣的 code 才能重複複製貼上,否則以你現在的寫法就必須是在

%RAILS_PATH%/app/views/layouts/common/_css.html.erb

#3

喔喔喔~抱歉沒有附上code

剛剛依照JC大大的建議試著修改路徑,結果問題還是一樣

就索性把 render partial 都拿掉試試看

預期它要吐 :id, :title, :created_at, :updated_at 給我

結果它把整頁從html tag一起吐給我

附上覺得可能有問題的code

完整的code
https://github.com/misuchiru/Nihongo_Blog/tree/feature/fullcalendar2


#4

你用的網址是 e2.json,所以應該是 show 而不是 index,log內應該會寫跑到那個 action 去才是

再來你的 show 內同時有 haml 和 jbuilder 兩種 template,你應該用類似

def show
  @posts = Post.all
  respond_to do |format|
    format.html { render :handlers => [:haml]}
    format.json { render :layout => false , :handlers => [:jbuilder]}
  end
end

否則該頁應該都會跑 layout 或是跑到不同的 template handlers 去(你的 haml 順序應該高於 jbuilder,所以必須手動指定),不過這邊未測,單純給你一個問題的指引而已,有問題再提出


#5

原來要用respond_to do |format|來指定
非常感謝JC大大的指引
他終於吐出我需要的資料來了
<(_ _)>