ruby-on-rails - 设置数据-*属性

标签 ruby-on-rails html slim-lang

我有一种情况需要在 div 上动态设置“data-*”的值。我实际使用的代码是这个:

  = tag('div', { class: 'agile-carousel',\
                 data: { carousel_list: url_for(format: :json) } }, true)
  = "</div>".html_safe

这太可怕了。 rails 也会关闭 <div /> 中的 div时尚,chrome 和其他浏览器绝对不喜欢(造成一些灾难)。

所以我的解决方案就是那个。请问有没有其他方法可以做到这一点。

更新 1:

我有一个小问题,这段代码:

span class==I18n.locale == locale_used ? "inactive" : nil
  = link_to(I18n.t('locale_name', locale: locale_used),\
            url_for(locale: locale_used))

如果我删除 link_to 它会起作用。请注意,如果我插入类似 | text 的内容它返回错误:syntax error, unexpected keyword_ensure, expecting $end

最佳答案

您可以使用 content_tag而不是 tag产生一个<div></div>而不是 <div> ,但你不应该。

您正在使用 Slim ,所以使用 Slim:

.agile-carouesel data-carousel_list=url_for(format: :json)

输出:

<div class="agile-carouesel" data-carousel_list="some URL"></div>

Slim 和 HAML 的全部要点在于,您可以使用这种非常简洁的语法来编写标签。您应该使用它,而不是在不需要时求助于 Rails 的标签助手。通过使用它们,您重新引入了它们本应删除的所有标点符号。

关于ruby-on-rails - 设置数据-*属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15644762/

相关文章:

javascript - Webpacker 未检测到文件 javascript/packs/application.js 中的导入函数

ruby-on-rails - rails : How do I re-render a partial view on a page?

ruby-on-rails - Rails/Mina Gem 创建自定义任务以进行播种

ruby-on-rails - 如何避免 N+1 查询并在 Active Admin 表单上执行预加载

ruby-on-rails - 如何使用simple_form禁用下拉选择中的特定值?

javascript - 如何让登录部分在用户登录时消失?

html - 滚动带有内容的网页背景图片

HTML aside 标签与 div 标签

ruby - 如何在输入值中显示文字 #{ @foo.bar }?

ruby-on-rails-3.2 - Rails + Slim 源输出