ruby-on-rails – Rails中的助手 – 构建html字符串时最好的方法是什么?

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – Rails中的助手 – 构建html字符串时最好的方法是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我通常会这样写助手:
def bloco_vazio (texto = "",btn = "",args={})
      titulo = content_tag :h3,"Vazio!" 
      p = content_tag :p,texto
      content_tag :div,(titulo + tag(:hr) + p + btn ),args
  end

但我经常看到人们使用其他方法,如:

def flash_notice
    html = ""
    unless flash.empty?
      flash.each do |f|
        html << "<div class='alert alert-#{f[:type].to_s}'>"
        html << "<a class='close' data-dismiss='alert'>×</a>"
        html << f[:text].to_s
        html << "</div>"
      end
    end
    html
 end

要么

def a_helper (some_text ="")
  %{ <h3>some title</h3>
      <p>#{some_text}</p>    
  }%
end

我过去使用了这两个持续时间并遇到了一些问题,然后开始使用content_tag和tag helpers,即使我仍然需要使用.html_safe方法.

有没有标准的方法来建立帮助者?

解决方法

如果html超过1行,我通常将html放在部分中,并使用自定义帮助器方法调用

视图

<= display_my_html(@item,{html_class: "active"}) %>

帮手

def display_my_html(item,opts={})
  name = item.name.upcase
  html_class = opts.key?(:html_class) ? opts[:html_class] : "normal"

  render "my_html",name: name,html_class: html_class
end

局部

<div class="<%= html_class %>">
  <span class="user">
    <%= name %>
  </span>
</div>

猜你在找的Ruby相关文章