3

假设我在 Rails 4 中有Library和模型。Book

我还有一个 book.json.jbuilder 文件,它定义了 Book 应该如何在 json 中呈现。

我如何告诉 library.json.jbuilder 重用 book.json.jbuilder 来呈现书籍 json 而不是复制代码?

#library.json.jbuilder example
json.(@libraries) do |library|
    json.id library.id
    json.name library.name
    # instead of the line below, is it possible to tell jbuilder 
    # to render books using book.json.jbuilder?
    json.books library.books, :title, :author 
end
4

1 回答 1

7

这可以使用部分来实现。

请参阅下面的示例,其中包含 _book.json.jbuilder 和 _library.json.jbuilder 部分。

更多文档在这里:https ://github.com/rails/jbuilder

# books/_book.json.jbuilder
json.id book.id
json.title book.title
json.author book.author

# books/index.json.jbuilder
json.array! @books, partial: 'books/book', as: :book

# libraries/_library.json.jbuilder
json.id library.id
json.title library.name
json.books library.books, partial: 'books/book', as: :book

# libraries/index.json.jbuilder
json.array! @libraries, partial: 'libraries/library', as: :library
于 2014-01-13T13:03:05.403 回答