2011-01-28 11 views
1

PHPでは、ページのURLに基​​づいてサイトのすべてのページのbodyタグに自動的に一意のIDを割り当てることができます。 (私はCSSを書くのに役立つスーパーを見つける)。Railsを使用してページのBodyタグに動的に一意のIDを割り当てる

<?php 
     $url = explode('/',$_SERVER['REQUEST_URI']); 
     $dir = $url[1] ? $url[1] : 'home'; 
?> 

<body id="<?php echo $dir ?>"> 

- >ソース:http://css-tricks.com/snippets/wordpress/id-the-body-based-on-url/

結果ということで、URLので

  • ページ "のhttp://domain.tld/blog/homeは" と身体を取得ID「blog」、
  • 「http://domain.tld」のURLを持つページは「home」のIDを取得する。

Ruby on Railsベースのウェブサイトで、(理想的には)同じようにシンプルでエレガントな方法があるかどうかを知りたいですか?

あなたの知恵を分かち合ってくれてありがとう、偉大な幸運なコードです!

答えて

2

あなたはapplication_controller.rbに次のように追加し追加することによって、コントローラとアクションによってそれに名前を付けることができます:

before_filter :create_body_id 
def create_body_id 
    @body_id = "#{params[:controller]}-#{params[:action]}" 
end 

次にテンプレートでこれを追加します。blog_controllerでindexアクションに関してid="<%= @body_id %>"

をあなたがしたいですお返事ありがとうございます。id="blog-index"

+0

blog_controllerのindexアクションについては、class = "blog-index"と表示されますか?つまり、これらの結果をURLの例に関連付けることができますか? – jon

+0

あなたは経路を変更していないblog_controllerというコントローラーがあり、そのコントローラーにindexと呼ばれるアクションがあると、URLは '/ blog /'または '/ blog/index /'のいずれかになり、どちらの場合も本体ID(またはクラス、私の例)は 'blog-index'になります。 –

+0

クールなおかげです! – jon

関連する問題