2012-01-10 6 views
0

私は、すべてのレールAPIがerbファイルのコードナゲットに次の2つの表記法のいずれかを使用しているように見受けられました。<%Q in rails 3を使用する理由3

<%Q ... %> 
<%= ... %> 

めったにバニラ、ここで例えば

<% %> 

、のいずれかの言及。

http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

私が読んだ本は<%のQ表記をカバーしていないので、私はそれが新機能と仮定しています。 "Q"に意味があるのですか?それともちょうど<%を使用するのではなく、ちょうどこのベストプラクティスですか?

答えて

3

<% %><%= %>はERBの特徴である参照してください。 <% %>は、いくつかのコードをテンプレートに埋め込むために使用されます。

<% if @person.age > 18 %> 

<%= %>を出力するために使用されるテンプレート例えば

Name: <%= @person.name %> 

%Q内の値は、Ruby言語の機能であり、Railsの具体的なものではありませんif文を埋め込むために使用されるだろう。 johnernautが書いているように、二重引用符で囲まれた文字列に使用されます。例えば%QあなたはこのRubyの機能を使用していないようですRailsのドキュメントのいくつかで見ているしかし代わりにあなたは二重引用符をエスケープする必要がputs "Say \"Hello\""のあなたはputs %Q(Say "Hello")

を書くことができます。実際のsource of form_helper.rbを見ると、それがないので、私はそれがrdocドキュメンテーションツールの特徴だと思っています。


更新:フレデリックよう私が上に書いていた一方で掲載され、それがrdoc bugであるように、それが見えます。

2

<% %>および<%= %>が一般的な標準のようである。私は%Qを二重引用符で囲まれた文字列のために使用されていると信じて:

relevant link経由見つかり
>> %Q(Joe said: "Frank said: "#{what_frank_said}"") 
=> "Joe said: "Frank said: "Hello!""" 

2

ドキュメントで<%のQが使用されてRDOCツールのバグの結果である、this thread