LoginSignup
0
0

More than 5 years have passed since last update.

Hamlでいい感じのidを生成する方法

Posted at

TL;DR

%div[user]
<div class="user" id="user_1">
</div>

概要

公式ドキュメントより引用

# file: app/controllers/users_controller.rb

def show
  @user = CrazyUser.find(15)
end
-# file: app/views/users/show.haml

%div[@user, :greeting]
  %bar[290]/
  Hello!

これらが、

<div class='greeting_crazy_user' id='greeting_crazy_user_15'>
  <bar class='fixnum' id='fixnum_581' />
  Hello!
</div>

こうなります。

一体何が起きているのか

コードを読めば単純明快でした。

やっていることは、
- オブジェクトのクラス名を取得し、
- to_keyまたはidメソッドでidを取得し、
- それらを(もしprefixがあるならそれも含めて)ハッシュにして返す

ね、簡単でしょう?

残された謎

公式ドキュメントの例にあるFixnumto_keyidも持ってないんだけど、なんで581が返ってるんだろう…?

0
0
0

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
0
0