1

按照 Hartl 的 RoR 教程清单 10.47 中的说明,我制作了一个MicropostsHelper文件,Microposts用很长的单词包装起来。

Microposts它在调用的用户页面上工作得很好

<%= wrap(micropost.content) %>

但是当我尝试在调用它的首页上调用它Microposts

<%= wrap(feed_item.content) %>

这没用。

我想也许我需要做一个身份feed_itemHelper,但那根本不起作用。我认为我需要做的是让feed_item.content知道它可以使用助手,但我不知道该怎么做。

Microposts Helper

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 正在工作,但长词仍然迫使 Posted<%= time_ago_in_words(feed_item.created_at) %> ago.feed左对齐。这是一个包裹的帖子的图像,未对齐,位于正确对齐的未包裹的帖子上方。

好的,还不能发布图片...这是在 flickr 上 Flickr 图片

非常感谢任何帮助。

4

1 回答 1

1

由于 gravatar css 类使用 a float: left,我认为您只是看到围绕 gravatar 图像的文本。根据您的 gravatar 图像的大小,需要 2 或 3 行内容文本才能将其向下推过图像。我设置了 wrap_long_string 方法的默认值,max_width = 60以帮助在它换行之前占用更多的右侧空间。在 app/assets/stylesheets/custom.css.scss 中查找第 208 行左右的浮动是为 gravatar css 类定义的位置。要使所有文本保持在图像的右侧,可能会涉及一些额外的 css。

.gravatar {
  float: left;
  margin-right: 10px;
}
于 2014-05-16T21:17:12.670 回答