【问题标题】:How do I create a link_to tag with both class and data fields?如何创建包含类和数据字段的 link_to 标记?
【发布时间】:2018-04-10 22:15:57
【问题描述】:

我想创建一个 Rails 的 link_to 标记,它最终会生成一个对话框,因此它只是链接到“#”。但是,我希望它有一个类和数据属性。但是当我尝试这个时

<%= link_to "What's This?", "#", {class: "more_info"}, :data => { :more_info => 'mt_hashes_info' } %>

我得到了错误

wrong number of arguments (given 4, expected 0..3)

构建此链接的​​正确方法是什么?

【问题讨论】:

    标签: ruby-on-rails class ruby-on-rails-5 link-to custom-data-attribute


    【解决方案1】:

    它应该是这样的:

    &lt;%= link_to "What's This?", "#", {:class =&gt; "more_info", :data =&gt; { :more_info =&gt; 'mt_hashes_info' }} %&gt;

    类和数据都进入相同的选项哈希。

    【讨论】:

      【解决方案2】:

      你可以像这样简单地做到这一点

      <%= link_to "What's This?", "#", class: "more_info", data: { more_info: "mt_hashes_info" } %>
      

      生成的 HTML

      <a class="more_info" data-more-info="mt_hashes_info" href="#">What's This?</a>
      

      confirmation 对话

      <%= link_to "What's This?", "#", class: "more_info", data: { confirm: "Are you sure?" } %>
      

      生成的 HTML

      <a class="more_info" data-confirm="Are you sure?" href="#">What's This?</a>
      

      你可以找到更多link_to

      【讨论】:

        【解决方案3】:

        这是一个来自 Redmine 核心的示例:

        link_to(l(:button_archive), archive_project_path(project, :status => params[:status]), :data => {:confirm => l(:text_are_you_sure)}, :method => :post, :class => 'icon icon-lock')
        

        对连续声明感到抱歉;你知道红米!但请注意 :data 和 :class 都是同一个 Hash 的对等点...

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-05-12
          • 2021-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多