我们什么时候在ruby中的标识符之后使用冒号?例如:
<%= f.input :XML, as: :file, wrapper: :vertical_file_input %>
这里我们有as:
但是f.input
我们没有冒号。
那些x:
标识符是什么?我们如何决定是否放一个冒号呢?
答案 0 :(得分:2)
它只是语法糖。
{as: :file, wrapper: :vertical_file_input}
是一个Hash,等于
{:as=>:file, :wrapper=>:vertical_file_input}
我个人认为第一个版本更具可读性。
所以x:
只是:x
(符号)作为哈希的关键。
f.input :XML, as: :file, wrapper: :vertical_file_input
是方法&#34;输入&#34;调用对象f,其中:XML作为第一个参数,{:as =&gt;:file,:wrapper =&gt;:vertical_file_input}作为第二个参数。你也可以写下来:
f.input(:XML, {as: :file, wrapper: :vertical_file_input})
这种方法调用在Rails中很常见。