Hatena::ブログ(Diary)

femocoの日記

2009-07-09

nifty_generatorsを導入する(nifty_layout、nifty_scaffold、nifty_config)

23:51

Railsアプリを作成する場合、app/views/layouts以下にapplication.html.erbは生成されないため、とても素っ気ない画面になります。

そのままアプリを作りつづけても良いのですが、ある程度見栄えのするアプリ全体の共通テンプレートがあると便利です。

自分で作ることもできますが、先達の作ったものを使わせてもらうこともできます。

ここでは、Railscastsで知られるRyan Batesさんによるnifty_generatorsを導入し、使ってみます。

nifty_generatorsは、以下の4つのgeneratorから構成されています。それぞれ単一で使用することができます。

  • nifty_layout: app/views/layouts/application.html.erb、public/stylesheets/application.cssを生成する。
  • nifty_scaffold: ちょっと見栄えのするcontrollerとmodel、migrationを生成する。
  • nifty_config: config/app_config.ymlとconfig/initizlizers/load_app_config.rbを生成する。
  • nifty_authentication: ごく単純なauthentication機能を追加する。

導入

gem install nifty-generators

使用方法

nifty_config
script/generate nifty_config

config/app_config.ymlとconfig/initizlizers/load_app_config.rbが生成されます。

config/app_config.ymlを必要に応じて編集し、サーバー再起動した後に、その内容が反映されます。

config/initializers/load_app_config.rbは、通常、編集する必要はありません。

config/app_config.ymlは、例えば以下のようになります。

development:
	domain:	localhost:3000
	site_title:	"My Site Title"

上記のようにapp_config.ymlに書いた内容は、controllerやviewから参照することが出来ます。

例えば、viewから参照する場合には、以下のようにします。

<%= link_to APP_CONFIG[:site_title], root_path %>
nifty_scaffold

例えば、userのmigration、model、controller、helper、viewを作成し、かつ、controllerのメソッドとしてnewとeditを作りたい場合は以下のようにします。

script/generate nifty_scaffold user username:string email:string password:string new edit

railsscaffoldよりも見栄えの良い結果が簡単に得られます。

モデルは作成したくない場合等も、各種のオプションで対応できます。

どのようなオプションが存在するか知りたい場合は、変数なしでコマンドを発行します。

script/generate nifty_scaffold

これでヘルプとサンプルが出力されます。

nifty_layout
script/generate nifty_layout

app/views/layouts/application.html.erb、public/stylesheets/application.cssが生成されます。

簡素なレイアウトですが、充分に見栄えがします。

必要に応じて、application.html.erbとapplication.cssを編集します。