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
这是我的控制器。他返回错误
怎么解决呢? 谢谢!未定义的方法`truncate&#39; for ActiveRecord :: Relation []
答案 0 :(得分:1)
您正在尝试将truncate方法应用于数组,这将无效,因为truncate仅适用于字符串。
你的问题确实存在于@masters
财产中。你需要将它推导成你试图截断的任何字符串。
答案 1 :(得分:1)
ActionView :: Helpers中的truncate方法仅适用于字符串。
@masters是一个活动记录关系对象,因此该方法不起作用。
答案 2 :(得分:1)
Truncate适用于Strings,但您可以使用ActiveRecord :: Relation调用它。首先,您必须在.first
上调用@masters
(或者类似于仅选择一条记录),然后调用.full_name
等字符串属性
@masters = truncate(
User.search_by_full_name(params[:full_name]).where(master: :true)
.first.full_name
, separator: '['
)
您也可以在每条记录上调用它:
@masters = User.search_by_full_name(params[:full_name]).where(master: :true)
.map { |master|
truncate(master.full_name, separator: '[')
}