【问题标题】:Dividing text article to smaller parts with paging in Ruby on Rails在 Ruby on Rails 中使用分页将文本文章分成更小的部分
【发布时间】:2011-10-02 16:13:38
【问题描述】:

这次我遇到了将文本文章分成较小部分的问题。我不需要根据单词计数或其他东西找出“自动”算法。我所需要的只是类似于内置 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]] %>

听起来怎么样?这有什么意义吗?不能等待一些建议。

【问题讨论】:

    标签: ruby-on-rails ruby arrays string article


    【解决方案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) %>
    

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

    【讨论】:

    • 谢谢 Ben,我几乎忘记了使用 cmets 而不是可悲的 的可能性。您关于将此功能移至 helper 的建议也很中肯。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-29
    • 2012-07-07
    • 2016-02-26
    相关资源
    最近更新 更多