2013-02-22 2 views
0

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

Путь:

  1. attr_accessible :location, :total_time, :visits
  2. belongs_to :trackedsite, :touch => true

Trackedsite:

  1. attr_accessible :total_time, :url, :visits
  2. has_many :paths, :autosave => true

Я хочу найти путь, принадлежащий Trackedsite с определенным адресом

Я пробовал:

@trackedsite = Trackedsite.find_by_url(params[:url_string]) 
@path = @trackedsite.find_by_location(params[:path_string]) 

Но я не получаю «нет такой колонки: paths.trackedsite_id» (который правильно, что столбец не существует, должен ли я добавлять что-то к моей миграции?)

+0

«Оба дают мне ошибки ...» Какие ошибки? –

+0

«Нет такого столбца path.location» – Nonconformist

+0

У обоих запросов возникает такая же ошибка? Вы запустили rake db: migrate недавно? – varatis

ответ

0

Ассоциации работают с использованием внешних ключей. Если ваш путь belongs_to a TrackedSite по конвенции должен быть trackedsite_id, в противном случае между объектами нет никакой связи.

+0

Как я могу его обновить? Я попытался добавить 't.integer: trackedsite_id' к моей миграции, а затем запустить' rake db: reset', но он все еще говорит, что столбец не существует.Я пробовал 'rake db: drop', но он не сказал, что он не может найти sqlite db. Я на рельсах 3.2.12 – Nonconformist

+0

@ Coolguy123 Вы запускаете * новую * миграцию. Он не будет запускать * старый * миграция, которая уже была запущена, если вы не откажетесь. –

+0

Хорошо спасибо. Для кого-то интересно, что я сделал: Я побежал 'rake db: rollback', чтобы отменить миграцию, отредактировал миграцию, а затем запустил' rake db: migrate' – Nonconformist

Смежные вопросы