私は、非常に大きなデータ モデルを持つプロジェクトに取り組んでいますが、ビューがあまりユニークに見える必要はありません。関連する作業をスピードアップする良い方法は、足場のように機能するジェネレーターを作成することだと思いますが、代わりに単純なフォームやブートストラップ クラスなどを使用します。scaffold と大差ありませんが、いくつかの小さな変更があります。どうすればこれを行うことができますか?
1 に答える
3
最近、足場発電機を作りました。私がした2つの重要なこと:
- https://github.com/ryanb/nifty-generatorsからヒントを得ました
- 将来再利用できるように宝石を作成しました
これは、gem の仕組みを理解するのに役立ち、資産管理などに関してもう少し柔軟に対応できるようになりました。
そうは言っても、Rails ジェネレーターは Thor を利用します。知っておくべき最も重要なことは、何らかの方法でファイルをロードする必要があり (イニシャライザとlib
ディレクトリを使用することをお勧めします)、ファイルがパブリックに定義されたすべてのメソッドを実行することです。これは少し奇妙で予想外ですが、コードをきれいに保つのに役立ちます。
例えば:
class CustomerGenerator < Rails::Generators::Base
argument :foo, :type => :string, :default => 'foozball'
def create_view_files
template 'path/to/your/view.html.erb',"app/views/view.html.erb"
end
end
これにより、自動的に が呼び出さcreate_view_files
れ、テンプレートだけでなくクラスでも foo として :foo 引数にアクセスできます。
erb タグをエスケープするには、<%%= %>
代わりに使用します<%= %>
- 後者は実際に評価されるため、 のようなことができます<%%= @<%= foo %> %>
。これは、デフォルトのケースでは、 と評価され<%= @foozball %>
ます。
気の利いたジェネレーターを調べてすべてを揃えたいと思うかもしれませんが、これは実際のジェネレーターがどのように機能するかの基本です。
于 2013-10-24T14:00:13.307 に答える