加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 在Michael Hartl的Ruby on Rails教程中,如何在

发布时间:2020-12-17 02:00:16 所属栏目:百科 来源:网络整理
导读:我正在尝试在Michael Hartl的 Ruby on Rails教程的第11章末尾完成练习8.通过更改以下内容,我能够在主页上成功应用他的包装助手: %= feed_item.content% 对此: %= wrap(feed_item.content)% 在app / views / shared / _feed_item.html.erb中 但是,当我
我正在尝试在Michael Hartl的 Ruby on Rails教程的第11章末尾完成练习8.通过更改以下内容,我能够在主页上成功应用他的包装助手:

<%= feed_item.content%>
对此:
<%= wrap(feed_item.content)%>

在app / views / shared / _feed_item.html.erb中

但是,当我尝试通过这样做在app / views / users / show.html.erb中实现wrap helper时:

<%=渲染换行(@microposts)%>

我明白了:

undefined method `scan' for #Array:0x00000102e8cc10>

我究竟做错了什么?

这是包装助手的代码:

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 = "&#8203;"
     regex = /.{1,#{max_width}}/
     (text.length < max_width) ? text : 
                              text.scan(regex).join(zero_width_space)
   end
end

解决方法

wrap方法需要一个字符串;你传给它一个数组.

由于其格式化,实际上无法读取该方法,但似乎它只需要一个字符串 – 您试图将整个帖子集合发布到它.但是,您可以收集帖子内容的包装版本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读