Запрос не может найти столбец - PullRequest
1 голос
/ 08 января 2012

Я пытался заставить этот запрос работать последние пару часов, но не могу.Поэтому я надеюсь, что кто-то может помочь.

Вот ошибка: Mysql :: Ошибка: неизвестный столбец 'network_id' в 'предложении': SELECT networks. * FROM networks WHERE (network_id =1,2)

Вот мои модели:

class Network < ActiveRecord::Base
  belongs_to :customer
  has_many :user_network_relations

class Customer < ActiveRecord::Base
  has_one :network, :dependent=>:destroy
  accepts_nested_attributes_for :network

class UserNetworkRelation < ActiveRecord::Base
  belongs_to :network
  accepts_nested_attributes_for :network

контроллер

@user = User.find(params[:id])
@user_approved = UserNetworkRelation.find(:all,:conditions => ['user_id = ? and status =? ', @user, "approved"])
@networks = Network.find(:all,:conditions => ['network_id = ?',@user_approved])
@user_networks = Customer.find(@networks)    

Любая помощь приветствуется.Заранее спасибо!

1 Ответ

1 голос
/ 08 января 2012

Ошибка в этой строке:

@networks = Network.find(:all,:conditions => ['network_id = ?',@user_approved])

Вы явно указываете ActiveRecord, что хотите ограничить столбец network_id, который явно не существует.Возможно, вы имели в виду столбец id.Правильная строка может выглядеть следующим образом:

@networks = Network.where(:id => @user_approved).all

или эквивалентно

@networks = Network.where('id = ?', @user_approved).all

Обратите внимание, что в моем примере я использовал новый синтаксис ActiveModel / AREL для Rails 3. Вы использовали устаревший(но все еще поддерживается) Синтаксис Rails 2. Вы должны переключиться на новый синтаксис, поскольку он позволяет объединять запросы, которые более мощные и намного более читаемые.См. документацию о том, как использовать новый синтаксис AREL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...