2014-08-27 56 views
0

我面臨的問題時,嘗試呈現從rabl空收集與Rabl的Rails的

#app/controllers/recipes_controller 
class RecipesController < ApplicationController 

    respond_to :json 

    def unpublished 
     @unpublished = Recipe.unpublished.for_user(<uer id>) 
    end 
end 

#app/views/recipes/unpublished.rabl 
collection @unpublished 
attributes :id 

空數組但我的問題是,如果@unpublished #=> [],我rabl模板提供undefined method ID」爲無:NilClass`錯誤。

我做了一些搜索,找不到一個簡單的方法。我認爲應該有一個簡單的方法,例如:

collection @unpublished 
attributes :id , if => :id 

回答

0

Rabl的似乎並沒有對此有一個解決方案。你的回答看起來不錯,但如果你有很多屬性,它會變得很麻煩。您可以爲所有屬性條件拉姆達提到here

0

我認爲你可以使用

if @unpublished.id.present? 
     attributes :id 
    else 
     extends "you can create a file rabl for handle is {#api/error}" 
    end 

    example: error.rabl 

    object false 
    node :message do 
     "some think went wrong" 
    end 

我希望這可以幫助,:)