Rails调用方法.truncate()

时间:2017-03-15 10:28:26

标签: ruby-on-rails ruby

我需要按照Rails API ActionView::Helpers::TextHelper中的说明在rails控制台中执行此操作 我已经在以下Stackoverflow Discussion找到了我的问题的解决方案,但我发布这个问题可能很有用。 如果你想让我删除它,请告诉我。

  1. 我想在我的rails控制台

    中创建ActionView::Helpers::TextHelper
    texthelper = ActionView::Helpers::TextHelper
    => ActionView::Helpers::TextHelper
    
  2. 我创建了一个字符串

    string = "I want to call the truncate method"
    => "I want to call the truncate method"
    
  3. 我想在我的控制台上调用truncate方法。

    truncate(string, length: 25, omission: '... (continued)')
    => "And they f... (continued)"
    
  4. 当我在控制台中输入时:

    truncate("Once upon a time in a world far far away", length: 17, separator: ' ')
    

    我收到了

    undefined method `truncate' for main:Object
    

    整个想法来自这篇文章.. Undefined method `truncate' in model

4 个答案:

答案 0 :(得分:1)

我在以下讨论中找到了答案Undefined method `truncate' in model

我应该使用以下命令在我的rails控制台中包含ActionView :: Helpers :: TextHelper

include ActionView::Helpers::TextHelper 

然后我可以调用截断方法。

truncate(string, length: 17, separator: ' ')
=> "this is a tesf..."

我现在的理解是,使用include命令,ActionView::Helpers::TextHelper中的方法现在可以在控制台中使用。 truncate方法可以在text上执行。

答案 1 :(得分:1)

对于Rails 6和ruby 2.6。*,可能存在一些问题,至少在截取RTF文本时遇到了不确定的错误。因此,在ActionText和Truncate中,我找到了解决方案,它可能很有用=>

<%= truncate(strip_tags(blog.body.to_s), length: 450) %>

答案 2 :(得分:0)

按照rails控制台中的以下步骤操作:

let d = [
        kCGImageSourceShouldAllowFloat as String : true as NSNumber,
        kCGImageSourceCreateThumbnailWithTransform as String : true as NSNumber,
        kCGImageSourceCreateThumbnailFromImageAlways as String : true as NSNumber,
        kCGImageSourceThumbnailMaxPixelSize as String : w as NSNumber
    ] as CFDictionary

这里“ActionView :: Helpers :: TextHelper”模块提供了一组格式化和转换字符串的方法。

Truncate方法在TextHelper模块中,因此您必须将其包含在控制台中。

答案 3 :(得分:0)

要添加到install a current Eclipse from scratch

在处理 Rails 6 应用程序时,我尝试在具有ActionText属性的视图上添加调用javax.xml.bind方法。

就是这样,我有一个名为 About 的模型,其属性为truncate,ActionText属性为title

因此,当我尝试使用以下方法在视图中调用body的ActionText属性上的truncate方法时:

body

我得到了错误:

<%= about.body.truncate(30) %>

这是我修复的方式

Ahsan's answer之后,我只是修改了以下代码行:

undefined method `truncate' for #<ActionText::RichText:0x00007fe5c4828488>

它就像魅力一样。

您可以在Official Rails文档中进一步了解truncate方法:Ahsan's answer

仅此而已。

我希望这会有所帮助