rails activerecord metasearch неопределенный метод - PullRequest
2 голосов
/ 11 мая 2011

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

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

@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 'для #

Я не понимаю, потому что запрос к базе данных является правильным (ВЫБЕРИТЕ пользователей. * ОТ пользователей ВЛЕВО ВНЕШНЕЕ ОБЪЕДИНЕНИЕ компании НА 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, вместо того, чтобы давать мне имя пользователя, оно дает мне 'User'

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

Ответы [ 2 ]

0 голосов
/ 24 мая 2011

спасибо за вашу помощь. На самом деле я решил проблему, изменив название модели @user на @myuser. Я ничего не изменил, и это работает. Я предполагаю, что проблема связана с плагином Devise, но это всего лишь предположение ...

Приветствие.

0 голосов
/ 23 мая 2011

Хотя в вашей таблице database 'users' есть столбец с названием «company_id», в модели User есть свойство, которое называется просто «company».

Try разве что @ user.company_id.nil? @company = Company.find (@ user.company.id) конец

...