fc2ブログ

2025.02 «  - - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - - - » 2025.04
TOP > CATEGORY > RubyOnRails(View・ERb)

TOP | NEXT

ERB でのコメントアウト 

2007年11月02日 ()
こちらのエントリで、Ruby のコメントアウトについて触れましたが、ERB でもコメントアウトしたいときはありますざますよね。

その場合は、いろんなやり方があると思いますが、基本的には ruby のコメントと同じ方法でできます。

以下にやり方をアゲアゲしておきます。参考にしてください。

1行コメント

A
<%# 1行のコメントアウト %>

B-1
<% if false %>1行のコメントアウト<% end %>

B-2
<% if false %>1行のコメントアウト<%= satoimo.wakewakame %><% end %>


※ A のスタイルのコメント中に <%= %> タグは入れられません。


複数行コメント

A
<%#
複数行の
コメントアウト
%>

B-1
<% if false %>
複数行の
コメントアウト
<% end %>

B-2
<% if false %>
複数行の
コメントアウト
<%= satoimo.wakewakame %>
<% end %>

C
<%
=begin
複数行の
コメントアウト
=end
%>


※ A と C のスタイルのコメント中に <%= %> タグは入れられません。



そんな秋風薫る11月。銀杏の実のかほりがたまりませんね。

【広告】

[2007.11.02(Fri) 00:52] RubyOnRails(View・ERb)Trackback(0) | Comments(2) 見る▼
↑TOPへ


COMMENT

こんなのもあり by NOV
<%
=begin
%>
複数行の
コメントアウト
<%= satoimo.wakewakame %>
<%
=end
%>

フォローアップありがとうございます by 自分
サトイモわけわかめ もご丁寧に使っていただきメルシーです。
豚汁にはサトイモ・ごぼう・にんじん・大根・こんにゃく、は欠かせませんね。その中にワカメを入れるといきなり雰囲気ぶち壊しですね。くわばらです。

コメントを閉じる▲

partial パーシャルな関係【partial と object】 

2007年08月14日 ()
今日は

layout ⊃ template ⊃ partial

のうちの template ⊃ partial の関係を見ていきたいと思います。

ちなみに layout ⊃ template の関係を見たいひとはこちらからどうぞ。

template ファイルの中で、render(:partial ... を使えば、画面表示の一部分(partial)を共通に使い回すことができます。

平たくいうと、template が partial を使い回すということです。

早速例をみてみましょう。

app/controller/galileo_controller.rb というコントローラに

class GalileoController < ApplicationController
  def list_males
    @my_males = Person.find_all_by_gender("m")
  end

  def list_females
    @special_title = 'ドキっ!女だらけのドンドンヒャララドンヒャララ'
    @my_females = Person.find_all_by_gender("f")
  end
end



と定義されていて、app/views/galileo/list_males.rhtml テンプレートファイルと app/views/galileo/list_females.rhtml テンプレートファイルで、partial ファイルを共有することにします。
app/views/galileo/list_males.rhtml

男祭りじゃ<br />
<%= render(:partial => "people",
           :object => @my_males)
           %>



app/views/galileo/list_females.rhtml

女祭りよ<br />
<%= render(:partial => "people",
           :object => @my_females,
           :locals => { :sub_title => @special_title }) %>




どちらも :partial => "people" と指定しているので、people という名前の partial ファイルを読み込んできます。

じゃあ、partial ファイルはどこにどういう風に置いておくの?という疑問があると思いますが、それは、template ファイルと全く同じディレクトリの中です。

上の例ですと、app/views/galileo/ ディレクトリの中ということになりますね。

ただ注意するのは、ファイル名の一番最初に _ アンダースコアを付けます。

上の partial ファイル名は people という指定だったので、_people.rhtml となります。

例えば _people.rhtml ファイルの中身は、

<%= sub_title %>
<% people.each do |person| %>
<%= person.id %><br />
<% end %>



こんな感じになります。

上の template ファイルで render しているときの引数ですが、

:object には、partial ファイルの中で partial ファイル名と同じ名前の変数として参照できるオブジェクトを指定します。

:locals には、その他 partial ファイルに渡したい値を指定します。

上の例ですと、partial ファイル(_people.rhtml)で使っている変数 people の中身は、@my_males だったり @my_females だったりします。

その他、sub_title という変数も partial ファイルで使っていますが、こちらは女祭りのときだけ @special_title の中身が入っています。

男祭りの時は、何も値が入っていませんから、空文字が表示される、ということになります。

なかなか面白いですね。

【広告】

[2007.08.14(Tue) 18:13] RubyOnRails(View・ERb)Trackback(0) | Comments(0) 見る▼
↑TOPへ

layout ファイルについて・その3【細かいオプションとか】 

2007年08月11日 ()
前回の例を使って更に詳しいオプションなどを説明します。

デフォルトでは、controller の名前そのままのレイアウトファイルを持ってきます。でもでも違う名前のレイアウトファイルを持ってきたい場合は、controller に layout "[レイアウトファイル名]" と指定します。

app/controllers/galileo_controller.rb ファイルでいうと、

class GalileoController < ApplicationController
  layout "galileo2"
  def intro
  end
end



これで、app/views/layouts/galileo.rhtml ファイルではなく、app/views/layouts/galileo2.rhtml ファイルを使用するようになります。

今はダブルクォーテーションで galileo2 をくくって、String 扱いにしましたが、これをシンボル扱いにすると、このシンボルと同じ名前のメソッドの戻り値と同じレイアウトファイルを読み込みなさい、というややこしいことになります。

class GalileoController < ApplicationController
  layout :which_galileo
  def intro
  end

  private
  def which_galileo
    param[:honyarara].blank? ? "galileo" : "galileo2"
  end
end



あと、このメソッドだけにレイアウトを使いたいとか、このメソッドだけにはレイアウトを使いたくないとかの指定ができます。

class GalileoController < ApplicationController
  layout "galileo2", :only => :intro1 #intro1 にだけレイアウトを使う
  def intro1
  end
  def intro2
  end
  def intro3
  end
end



class GalileoController < ApplicationController
  layout "galileo2", :except => :intro1 #intro1 にだけレイアウトを使わない
  def intro1
  end
  def intro2
  end
  def intro3
  end
end



もうちょっとだけいろいろ出来るみたいですので、気になる方は、こちらをどうぞ。

【広告】

[2007.08.11(Sat) 23:29] RubyOnRails(View・ERb)Trackback(0) | Comments(0) 見る▼
↑TOPへ

layout ファイルについて・その2【レイアウトファイルの書き方】 

2007年08月10日 ()
前回に引き続き今回は layout ファイルの書き方です。

まず、layout ファイルの場所ですが、app/views/layouts/ ディレクトリの中にファイルを置きます。

ファイル名は、[全て小文字のコントローラ名].rhtml です。(もしくは .rxml とかも可)

layout ファイルには、各画面で共通に表示するものを書いておきます。簡単な例ですと、app/views/layouts/galileo.rhtml ファイルに

<html>
<head>
<title>ガリレオのいぢめられて強くなる人生</title>
</head>
<body>
  <%= yield %>
</body>
</html>



<%= yield %> というのがミソですね。ここに、いろいろな view ファイルが埋め込まれて表示されます。

そしたら、view ファイルとして app/views/galileo/intro.rhtml ファイルに

イヤー、ガリレオは大変でしたのよ。<br />
そりゃー、世間の常識をひっくり返すって並大抵じゃないのよ。<br />
サラリーマンが首を紐でしばって歩く姿も、常識とはいえ変よねぇ。<br />



なんて書きます。

さらに、app/controllers/galileo_controller.rb ファイルに

class GalileoController < ApplicationController
  def intro
  end
end



これで完了。

そして、http://localhost:3000/galileo/intro

にアクセスすると、layout と view を合体させた、

<html>
<head>
<title>ガリレオのいぢめられて強くなる人生</title>
</head>
<body>
  イヤー、ガリレオは大変でしたのよ。<br />
そりゃー、世間の常識をひっくり返すって並大抵じゃないのよ。<br />
サラリーマンが首を紐でしばって歩く姿も、常識とはいえ変よねぇ。<br />

</body>
</html>



が表示されます。

スゴーイ!!


ちなみに、レイアウトファイル中の <%= yield %> の代わりに

<%= yield :layout %>
<%= @content_for_layout %>

とかも書けます。同じ意味らしいです。

次回は、さらに詳しく layout ファイルについて見ていきたいと思います。

【広告】

[2007.08.10(Fri) 23:28] RubyOnRails(View・ERb)Trackback(0) | Comments(0) 見る▼
↑TOPへ

layout ファイルについて・その1【layout ファイルの概念】 

2007年08月09日 ()
rails では、画面の大枠として表示させる layout レイアウトファイルを定義することができます。

layout ファイルは、一昔のフレームのような、つまり図でいうと


↓は画面のつもり



 -----------------------
|    ここらへん         |
|                       |
 -----------------------
| こ |                  |
| こ |                  |
| ら |                  |
| へ |                  |
| ん |                  |
|    |                  |
 -----------------------


は、どの画面でも固定という場合が多いので、それを1ファイルにまとめて書いてしまおう!というものです。


書き方は次回に続く

ちなみに、layout がいちばん大きい枠で、次に template が大きい枠で、そして、partial が一番小さい枠になります(現在の私の知識の中では・・・)

layout ⊃ template ⊃ partial

こんな感じですね。次回では、このうちの、layout ⊃ template の関係を見ていきたいと思います。

template ⊃ partial の関係を見たいひとはこちらからどうぞ。

【広告】

[2007.08.09(Thu) 23:28] RubyOnRails(View・ERb)Trackback(0) | Comments(0) 見る▼
↑TOPへ

TOP | NEXT