Ruby on rails 如何使用方法';截断';在控制器中? 类搜索控制器
这是我的控制器。他返回错误 ActiveRecord::Relation[]的未定义方法“truncate” 如何解决?Ruby on rails 如何使用方法';截断';在控制器中? 类搜索控制器,ruby-on-rails,ruby,ruby-on-rails-4,pg-search,Ruby On Rails,Ruby,Ruby On Rails 4,Pg Search,这是我的控制器。他返回错误 ActiveRecord::Relation[]的未定义方法“truncate” 如何解决? 谢谢!您正在尝试将truncate方法应用于数组,但这不起作用,因为truncate仅适用于字符串 您的问题实际上存在于@masters属性中。您需要将其推断为您试图截断的任何字符串。ActionView::Helpers中的truncate方法仅适用于字符串 @masters是一个活动记录关系对象,因此该方法不起作用。Truncate适用于字符串,但您可以使用ActiveR
谢谢!您正在尝试将truncate方法应用于数组,但这不起作用,因为truncate仅适用于字符串
您的问题实际上存在于
@masters
属性中。您需要将其推断为您试图截断的任何字符串。ActionView::Helpers中的truncate方法仅适用于字符串
@masters是一个活动记录关系对象,因此该方法不起作用。Truncate适用于字符串,但您可以使用ActiveRecord::Relation调用它。首先必须调用
。首先在@masters
上调用(或类似于只选择一条记录),然后调用字符串属性,如.full\u name
class SearchingController < ApplicationController
include ActionView::Helpers::TextHelper
def index
@masters = User.search_by_full_name(params[:full_name]).where(master: :true)
@courses = Course.searching_courses(params[:course_title])
@masters = truncate(@masters, separator: '[')
end
end
您也可以在每条记录上调用它:
@masters = truncate(
User.search_by_full_name(params[:full_name]).where(master: :true)
.first.full_name
, separator: '['
)
我很好奇,你想用这个方法实现什么?可能有一些更好的选择,你可以将关系对象的属性转换为stringsit。这很难用外语解释
@masters = User.search_by_full_name(params[:full_name]).where(master: :true)
.map { |master|
truncate(master.full_name, separator: '[')
}