метапоиск рельсов неопределенный метод 'company_id' - PullRequest
0 голосов
/ 11 мая 2011

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

при запуске этого кода:

@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

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

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

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

Когда я набираю, вместо @ user.name вместо @имя пользователя, это дает мне «Пользователь»

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

1 Ответ

0 голосов
/ 26 июля 2011

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

Попробуйте это

@users = @search.where("users.id = ?", params[:id])
@user = @users.nil? ? @foundusers.first : @users.first
...