Метапоиск рельсов неопределенный метод 'company_id'

Я новичок в рельсах и нуждаюсь в вашей помощи, что должно быть простой проблемой.

когда я запускаю этот код:

@search = User.search(params[:search])
@foundusers = @search.all.paginate :page => params[:page], :per_page => 20
@user = @search.where("users.id = ?", params[:id])
if @user.nil?
  @user = @foundusers.first
end
unless @user.company_id.nil?
  @company = Company.find(@user.company_id)
end

Я получаю следующее сообщение об ошибке: неопределенный метод `company_id'для #

Я не понимаю, потому что запрос к базе данных является правильным (SELECT users.* ОТ users ЛЕВОЕ НАРУЖНОЕ СОЕДИНЕНИЕ companies НА companies,id знак равно users,company_id ГДЕ (((users,firstname Как "% s%" ИЛИ users,lastname НРАВИТСЯ '%s%') ИЛИ companies,name НРАВИТСЯ '%s%')) И (users.id = '11'))

и company_id для этого пользователя не является пустым.

Когда я печатаю, вводит @ user.name, вместо того, чтобы давать мне имя пользователя, оно дает мне 'User'

Большое спасибо за вашу помощь.

1 ответ

Решение

@user.name печатает пользователя, потому что.where("users.id =?", params[:id]) по-прежнему возвращает массив

Попробуй это

@users = @search.where("users.id = ?", params[:id])
@user = @users.nil? ? @foundusers.first : @users.first
Другие вопросы по тегам