Как я могу переопределить метод as_json в Rails, используя псевдоним для вложенного ключа ассоциации и включая (или исключая) определенные атрибуты в строке JSON?
class Book < ApplicationRecord
has_many :pages
has_many :paragraphs, through: :pages
accepts_nested_attributes_for :pages, allow_destroy: true
end
class Page < ApplicationRecord
belongs_to :book
has_many :paragraphs
accepts_nested_attributes_for :paragraphs, allow_destroy: true
end
class Paragraph < ApplicationRecord
belongs_to :page
has_one :book, through: :page
end
Мне нужно обратиться кчасть JSON в виде "параграфов" в виде "параграфов_атрибутов", поэтому Rails будет принимать их через сильные параметры.И я хотел бы ограничить включенные атрибуты.Я попробовал этот синтаксис, но он не работает ...
// on the Page model
def as_json(options = {})
json = {:id => id, :name => name, :paragraphs_attributes => paragraphs(except: [:created_at, :updated_at])}
end