我注意到所有的rails API似乎都使用以下两种符号来表示erb文件中的代码块;
<%Q ... %>
<%= ... %>
但很少提及香草
<% %>
例如,这里;
http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html
我刚读过的这本书没有涵盖&lt;%Q符号,所以我认为它是新的。对“Q”有什么意义,或者这只是现在的最佳做法,而不仅仅是使用&lt;%?
答案 0 :(得分:4)
<% %>
和<%= %>
是erb的功能。 <% %>
用于在模板中嵌入一些代码,例如它将用于嵌入if
语句
<% if @person.age > 18 %>
<%= %>
用于在模板中输出值,例如
Name: <%= @person.name %>
%Q
是Ruby语言的一个特性,并不是Rails特有的东西。正如johnernaut所写,它用于双引号字符串。例如而不是puts "Say \"Hello\""
,你需要转义双引号,你可以写puts %Q(Say "Hello")
但是,您在某些Rails文档中看到的%Q
似乎并未使用此Ruby功能。如果您查看实际的source of form_helper.rb它没有它们,所以我认为这是rdoc文档工具的一个怪癖。
更新:正如弗雷德里克在撰写上述内容时发布的那样,看起来好像是rdoc bug。
答案 1 :(得分:2)
<% %>
和<%= %>
似乎是通用标准。我相信%Q
用于双引号字符串:
>> %Q(Joe said: "Frank said: "#{what_frank_said}"")
=> "Joe said: "Frank said: "Hello!"""
通过relevant link找到。
答案 2 :(得分:2)
文档中的&lt;%Q是正在使用的rdoc工具中的错误的结果,请参阅this thread