将变量插入数据属性

Interpolate variables into data attributes

这就是我通常使用数据创建 link 的方式。

= link_to 'link name', link_path, data: { day: '1' }

但现在我需要将“1”替换为这样的 rails 变量。

= link_to 'link name', link_path, data: { day: '#{customer.info}' }

但它不起作用,我不知道该怎么做。

您可以将变量插入仅使用双引号创建的字符串中 ":

= link_to 'link name', link_path, data: { day: "#{customer.info}" }

顺便说一下,以下内容似乎就足够了:

= link_to 'link name', link_path, data: { day: customer.info }

如果您已经在 Ruby 上下文中,只需使用变量。

= link_to 'link name', link_path, data: { day: customer.info }

你现有的代码正在做的是传递一个带有 ruby 代码的字符串。代码不会被评估,因为被单引号包裹了。

为了使用插值,必须使用双引号。

= link_to 'link name', link_path, data: { day: "#{customer.info}" }

但是,正如我在答案开头提到的,您不需要从这里插入值。