同じタイプのサブメニューを持つメニューモデルがありました。何かのようなもの:
- レベル1
- レベル1.1
- レベル1.2
- レベル2
- レベル 2.1
- ...
したがって、json にすべてのレベルを再帰的に含める方法が必要です。
同じタイプのサブメニューを持つメニューモデルがありました。何かのようなもの:
したがって、json にすべてのレベルを再帰的に含める方法が必要です。
RailsのJSONは、次の2つの方法で機能します。
as_json
オブジェクトのハッシュ表現を作成する責任がありますが、to_json
そのハッシュオブジェクト表現をJSONに変換します。
したがって、必要なことは、モデルにas_jsonメソッドを定義して、必要なものを含めることです。
def as_json
{
:other_options => value,
:submenu => self.submenus.collect { |n| n.as_json }
}
end
これは非常に大雑把な実装ですが、すべてのサブメニューに再帰的にアクセスし(サブメニュー自体がメニューであるため)、ハッシュにレンダリングしてからJSONに変換します。