Rails在自定义帮助程序中生成HTML

时间:2015-09-30 09:54:25

标签: ruby-on-rails

我有以下简化的帮助程序:

module MyHelper
  def widget
    link_to new_flag_path do
      content_tag(:i, '', class: "fa fa-flag")
    end
  end
end

我想输出第二个链接,例如:

  module MyHelper
    def widget
      link_to new_flag_path do
        content_tag(:i, '', class: "fa fa-flag")
      end
      link_to new_comment_path do
        content_tag(:i, '', class: "fa fa-comment")
      end
    end
  end

pugautomatic文章中概述的解决方案使用“concat”在单个块帮助器中连接多个帮助器。 http://thepugautomatic.com/2013/06/helpers/这适用于标准的link_to助手,例如:

module MyHelper
  def widget
    concat link_to("Hello", hello_path)
    concat " "
    concat link_to("Bye", goodbye_path)
  end
end

在href中使用glyphon时,您需要使用link_to块帮助程序,例如:

link_to new_comment_path do
  content_tag(:i, '', class: "fa fa-comment")
end

Concat不允许我连接多个link_to阻止助手,例如:

module MyHelper
  def widget
    concat link_to new_flag_path do
      content_tag(:i, '', class: "fa fa-flag")
    end
    concat link_to new_comment_path do
      content_tag(:i, '', class: "fa fa-comment")
    end
  end
end

这种情况下的解决方案是什么?

1 个答案:

答案 0 :(得分:1)

我认为你必须将每个link_to放在单独的方法中:

module MyHelper
  def link_to_flag_page
    link_to new_flag_path do
      content_tag(:i, '', class: "fa fa-flag")
    end
  end

  def link_to_new_comment
    link_to new_comment_path do
      content_tag(:i, '', class: "fa fa-comment")
    end
  end
end

并逐一打电话给他们