rails,undefined'raw'方法

时间:2012-04-01 22:06:50

标签: ruby-on-rails undefined

我正在关注迈克尔哈特尔的书,并且做了一个我似乎无法弄清楚的可选练习。

我有一个名为

的助手
module MicropostsHelper

  def wrap(content)
    sanitize(raw(content.split.map{ |s| wrap_long_string(s) }.join(' ')))
  end
  private
    def wrap_long_string(text, max_width = 30)
      zero_width_space = "​"
      regex = /.{1,#{max_width}}/
      (text.length < max_width) ? text : 
                                  text.scan(regex).join(zero_width_space)
    end
end

我正在尝试包装应该是来自用户输入的字符串的内容。在我的控制器里,我有,

def create
    flash[:notice] = "[][] is...", params[:micropost][:content]
    cleaned = wrap(params[:micropost][:content])
    @micropost = current_user.microposts.build(cleaned)
    ...

但是我一直在使用未定义的方法'raw'。有人能解释为什么吗?

是否有显示方法示例的api?

2 个答案:

答案 0 :(得分:4)

您可以在html视图中使用string.html_safer 'string'

答案 1 :(得分:2)

您可以直接在html.erb文件中使用wrap方法:

当时:

<span class="content"><%= micropost.content %></span>

变成了:

<span class="content"><%= wrap(micropost.content) %></span>