LoginSignup
6

More than 5 years have passed since last update.

Rails 4 で Haml を導入したらテンプレ内に Cooffee 書けて俺得だった件

Last updated at Posted at 2014-08-29

[2014/09/01追記]


以前に Rails 4 で Haml を利用する手順 を書いたのですが、同僚に、Haml のテンプレ内で CooffeeScript が書けるよと教えてもらいました。

自分の環境:
OS: Mac OS X 10.9.4 (Mavericks)
Ruby: 2.1.2
Rails: 4.1.1

Haml が導入されていれば、次のように :coffee を定義して、段落さげして Coffee を書いていけばいい。

hoge.html.haml


  - @items.each do |item|
    %tr
      %td= item.name
      %td= item.price
      %td= item.memo
      %td= link_to 'Show', item
      %td= link_to 'Edit', edit_item_path(item)
      %td= link_to 'Destroy', item, :method => :delete, :data => { :confirm => 'Are you sure?' }

%br

= link_to 'New Item', new_item_path

:coffee

  class Language
    constructor: (@name) ->

    move: (meters) ->
      alert @name + " moved " + meters + "m."

  class Ruby extends Language
    move: ->
      alert "Ruby..."
      super 5

  class PHP extends Language
    move: ->
      alert "PHP..."
      super 45

  rails = new Ruby "Ruby on Rails"
  symfony = new PHP "Symfony"

  rails.move()
  symfony.move()

※ 上記のスクリプトは http://railsdoc.com/coffeescript から引用させて頂きました。

Haml の filter と呼ばれる機能なのですが、Hamlのサイトによると、Coffee 以外にもいろいろ便利な filter があるっぽい。
http://haml.info/docs/yardoc/file.REFERENCE.html#cdata-filter

:markdown とかちょっと便利そう。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6