【问题标题】:Why the button_tag with extra parameters getting an error?为什么带有额外参数的 button_tag 会出错?
【发布时间】:2013-10-15 14:38:41
【问题描述】:

我有一个表单和一个按钮:

= button_tag( "×" , type: "button", html: {class: "close", aria-hidden: "true"},  data: {dismiss: "alert"} )

它从 twitter 引导程序 [http://getbootstrap.com/components/#alerts] 转换为 rails:

<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>

但是 rails 变体出现错误:

SyntaxError in Search#get_search
Showing /.../app/views/search/new.html.slim where line #58 raised:

/.../app/views/search/new.html.slim:58: syntax error, unexpected tLABEL
...: {class: "close", aria-hidden: true},  data: {dismiss: "ale...
...                               ^
/.../app/views/search/new.html.slim:58: syntax error, unexpected ')', expecting keyword_end
... {dismiss: "alert"} )))).to_s)); 
...                               ^

aria-hidden: "true"dismiss: "alert" 有问题

为什么会这样?我使用了不同的变体,它们抱怨 [http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-button_tag]:

button_tag(content_or_options = nil, options = nil, &block)

【问题讨论】:

    标签: ruby-on-rails html syntax-error form-helpers


    【解决方案1】:

    这种语法是不允许的:

    aria-hidden: "true"
    

    替换为:

    :"aria-hidden" => "true"
    

    "aria-hidden" => "true"
    

    aria: { hidden: true }
    

    【讨论】:

    • 我改成了= button_tag( "&amp;times;" , type: "button", html: {class: "close", :"aria-hidden" =&gt; "true"}, data: {dismiss: "alert"}),现在它可以工作了,但它看起来有点丑陋和奇怪。这:= button_tag( "&amp;times;" , type: "button", html: {class: "close", "aria-hidden": "true"}, data: {dismiss: "alert"}) 不起作用。
    • 为什么只有“aria-hidden”?所有其他属性与attr_name: value 完美配合
    • 这里没什么奇怪的 - 破折号是一个特殊的符号。它用作减号/运算符。
    • 但是为什么"aria-hidden": "true"不起作用,只有:"aria-hidden" =&gt; "true"
    • 因为 Ruby 语法不允许这样做 :) 抱歉,我不会给你更好的答案。也许在 Ruby 功能/错误跟踪器上搜索会产生一些结果。也许解析器很难猜出你对那个语法的真正含义。
    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2018-10-18
    • 1970-01-01
    • 2020-02-20
    • 2010-11-03
    相关资源
    最近更新 更多