Rails:在ActiveSupport:SafeBuffer元素中查找文本片段

时间:2011-12-04 10:09:44

标签: ruby-on-rails activesupport

我在我的rails应用程序中使用简单导航,我有一个render_navigation函数,返回一个ActiveSupport:SafeBuffer。由于我想删除所选标签,我试图通过这个SafeBuffer迭代,但我不知道该怎么做...

    <%= render_navigation(:level => 4).each do |level|
        if !level.to_s.gsub("selected").nil?
           level
        end
    end %>

这将返回错误:

  

未定义的方法to_str' for #&lt;`Enumerable :: Enumerator:0x103be1e60&gt;

知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

使用gsub时,您需要提供两个字段。您正在选择的字符串,以及您想要替换它的内容。在你的情况下,你只是想看看我认为是否存在字符串。

我建议match

if !level.to_s.match(/selected/).nil?

来源:http://corelib.rubyonrails.org/classes/String.html#M001538