0

这次我遇到了将文本文章分成较小部分的问题。我不需要根据单词计数或其他东西找出“自动”算法。我所需要的只是类似于内置 Wordpress WYSIWYG 编辑器的功能(特殊的断页标签)。

到目前为止,我只想到了一种解决方案。我不想在我的数据库中划分特定的文章。我只想在文章中放置一些标签并将其划分为 show 方法中的数组。

示例代码:

#controller
@art = Article.find(:id)
if @art.value.contains?('<breaker>')
  @parts = art.value.split('<breaker'>)
end

session[:current_part] = params[:current_part] ? params[:current_part] : @parts.first
...
render 

#view
<%=h @parts[session[:current_part]] %>

你觉得怎么样?这有什么意义吗?不能等待一些建议。

4

1 回答 1

1

使用 HTML 注释可能会更好,这样它就不会影响页面的验证。

在 Rails 视图中,在分隔符之前显示文本的模板中,您可以像示例代码中那样拆分内容。我将在 Rails 帮助模块中执行此操作,以便可以重用它。

要查看全文,如果传递了参数“more”,您的辅助方法将返回完整内容。代码可能如下所示:

# controller
def show
  @article = 'Before the break<!--more-->After the break'
end

# app/helpers/application_helper.rb
def show_more(article)
  params[:more] ? article : article.split('<!--more-->').first
end

# show.html.erb
<%= show_more(@article) %>

将应用程序逻辑保留在模型和帮助文件中,并使控制器尽可能简单通常是一种很好的做法。

于 2011-07-12T01:27:26.500 回答