【发布时间】:2014-07-22 10:04:52
【问题描述】:
Agile 第 6 章中这一行的语法和文档一样让我感到困惑。当哈希用作参数时,我很难理解发生了什么。
行是这样的:
link_to 'Destroy', product, method: :delete, data: { confirm: 'Are you sure?' }
shortened man page 是这样的:
link_to(name = nil, options = nil, html_options = nil, &block)
使用集合创建的 URL 创建给定名称的链接标签 选项。请参阅 url_for 文档中的有效选项。
选项
• :data - 此选项可用于添加自定义数据属性。
• 方法:HTTP 动词的符号 - 此修饰符将动态创建 HTML 表单并立即提交表单以供处理 使用指定的 HTTP 动词。
数据属性
• 确认:“问题?” - 这将允许不显眼的 JavaScript 驱动程序提示指定的问题(在这种情况下,生成的文本将是问题?。
在这种情况下,我似乎传递了 1 个参数(名称 = 'Destroy')和一个用于选项的哈希。没有 HTML 选项哈希或代码块。没有指定任何 url_for 选项。
我无法理解手册页。 “选项”部分描述了选项哈希的一些(但不是全部)允许值。选项散列中的一个参数是 :data 并且“数据属性”部分描述了该散列的选项。虽然看起来它们描述的是相同的东西,但 Data 属性实际上嵌套在 Options 哈希中。
如果我猜对了,那么 Options 散列似乎包含第二个散列,称为 :data,这是我传递确认:值的地方。
我可以用更多的括号重新编写该行,以生成像这样的显式哈希:
link_to ('Destroy', { product, method: :delete, data: { confirm: 'Are you sure?' } })
假设我没看错,我不理解选项哈希的第一个元素 product。
哈希元素不需要哈希键吗?看起来像一个模型类只是被扔在那里......我以为它是一个参数,但似乎错了。
我理解正确吗?
【问题讨论】:
标签: ruby-on-rails