RubyのCellsには独自のlayoutがある
trailblazer/cells: View components for Ruby and Rails.
使い方は以下のような感じ。
class FooCell < Cell::ViewModel
layout :simple
def bar # state
end
end
※ Rails の Controller 的にはメソッドは action なんだけど Cell::ViewModel 的には state になる。
レイアウトはどこに置くかというと、cell 用の view を置く場所にそのまま。名前付けに何かルールがあった方がよさそう。
cells/foo_cell.rb
cells/foo/bar.erb <-- state用template
cells/foo/simple.erb <-- layout
Laravelのtorann/cellsにはlayoutはない
- 11OutOf10/laravel-4-cells: Cells are view components for Laravel 4. They are mini-controllers with their own MVC stack, can invoke logic and render views.
- jp7carlos/laravel-5-cells: Cells are view components for Laravel 5. They are mini-controllers with their own MVC stack, can invoke logic and render views.
※ 上の Laravel 4 用の torann/cells は fork 版です。オリジナル版は type hint が邪魔して実際には使えないので。
この Cells にはそもそも独自の view object というものは存在しない。あくまで Blade の中に一つの記法(directive)を用意して、その中で独自に template を読んで render した結果を返すだけ。CellBaseController はあるが Laravel の Controller のようには layout を指定する機能はない。
というか Laraval の Controller は Layout 制御を積極的に支援していない ので、考え方が違う。@extends, @section, @yield と、Ruby 版の Cells と同じように名前付けのルールがあればよい。