在制作元素的id时,如何强制content_tag_for使用破折号而不是下划线?

时间:2011-05-30 02:49:06

标签: jquery ruby-on-rails ruby ruby-on-rails-3

我正在使用jQuery-UI的标签,它们似乎不喜欢使用下划线将id加入记录的content_tag_for方法。有没有办法迫使content_tag_for使用破折号而不是下划线,而无需在我的应用程序助手中使用一些讨厌的gsub重新定义content_tag_for?这是我的代码。

  <ul class="ui-tabs-nav">
    <% @preview_articles.each do |article| %>
      <%= content_tag_for(:li, article, 'nav-fragment', :class => "ui-tabs-nav-item #{'ui-tabs-selected' if article == @preview_articles.first}") do %>
        <%= link_to image_tag(article.photos.first.image.url(:thumbnail)), "#fragment-#{article.id}" %>
      <% end %>
    <% end %>
  </ul>

我需要li标签的id为nav-fragment-article-id,而content_tag_for正在创建一个像nav-fragment-article_id的id。

任何有关获取jquery-ui选项卡以使用下划线的建议也是受欢迎的。

1 个答案:

答案 0 :(得分:3)

你可以像ActionController::RecordIdentifier那样修补补丁:

module ActionController
  module RecordIdentifier
    JOIN = '-'.freeze
  end
end

只需将其粘贴到某个地方的初始化程序中即可,因为该常量已在之前定义,因此它会产生警告。