2014-08-27 7 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 идентификатора»для ноля: 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 

Я надеюсь, что это может помочь, :)

Смежные вопросы