我需要按照Rails API ActionView::Helpers::TextHelper中的说明在rails控制台中执行此操作 我已经在以下Stackoverflow Discussion找到了我的问题的解决方案,但我发布这个问题可能很有用。 如果你想让我删除它,请告诉我。
我想在我的rails控制台
中创建ActionView::Helpers::TextHelper
texthelper = ActionView::Helpers::TextHelper
=> ActionView::Helpers::TextHelper
我创建了一个字符串
string = "I want to call the truncate method"
=> "I want to call the truncate method"
我想在我的控制台上调用truncate方法。
truncate(string, length: 25, omission: '... (continued)')
=> "And they f... (continued)"
当我在控制台中输入时:
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
答案 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
仅此而已。
我希望这会有所帮助