Ruby on rails 为什么带有额外参数的按钮标签会出错?
我有一个表单和一个按钮:Ruby on rails 为什么带有额外参数的按钮标签会出错?,ruby-on-rails,html,syntax-error,form-helpers,Ruby On Rails,Html,Syntax Error,Form Helpers,我有一个表单和一个按钮: = button_tag( "×" , type: "button", html: {class: "close", aria-hidden: "true"}, data: {dismiss: "alert"} ) 它从twitter引导程序[]转换为rails: 隐藏了aria的某些内容:“true”或解除:“alert”是错误的 为什么会这样?我使用了不同的变体来抱怨[]: 不允许使用此语法: aria-hidden: "true" 替换为
= button_tag( "×" , type: "button", html: {class: "close", aria-hidden: "true"}, data: {dismiss: "alert"} )
它从twitter引导程序[]转换为rails:
隐藏了aria的某些内容:“true”
或解除:“alert”
是错误的
为什么会这样?我使用了不同的变体来抱怨[]:
不允许使用此语法:
aria-hidden: "true"
替换为:
:"aria-hidden" => "true"
或
或
我改为
=button_标记(“×;”),键入:“button”,html:{class:“close”,:“aria hidden”=>“true”},数据:{dismise:“alert”})
,现在它工作了,但看起来有点丑陋和奇怪。这:=button_标记(“×;”),键入:“button”,html:{class:“close”,“aria hidden:“true”},数据:{dismise:“alert”})
不起作用。为什么只有“aria hidden”?所有其他属性与attr_name:value
完美配合,这里没有什么奇怪的地方-破折号是一个特殊符号。它用作减号/运算符。但是为什么“aria hidden”:“true”
不起作用,只有:“aria hidden”=>“true”
?因为Ruby语法不允许这样做:)对不起,我不会给你更好的答案。也许在Ruby feature/bug tracker上搜索会得到一些结果。对于解析器来说,可能很难猜出这种语法的真正含义。
button_tag(content_or_options = nil, options = nil, &block)
aria-hidden: "true"
:"aria-hidden" => "true"
"aria-hidden" => "true"
aria: { hidden: true }