Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Модели, неймспэсы и связи, Rails 3.1rc1 
V
    Опции темы
XandoX
Дата 28.5.2011, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.5.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



Здравствуйте
Есть такие миграции

Код

class CreateNsFirsts < ActiveRecord::Migration
  def change

    create_table :ns_firsts do |t|
 
      t.timestamps
    end
  end
end
 
class CreateNsSeconds < ActiveRecord::Migration
  def change
    create_table :ns_seconds do |t|
      t.references :ns_first, :null => false
 
      t.timestamps
    end
    add_index :ns_seconds, :ns_first_id, :unique => true
  end
end


и модели

Код

class Ns::First < ActiveRecord::Base
  has_one :second_model, :class_name => "Ns::Second"
end
 
class Ns::Second < ActiveRecord::Base
  belongs_to :ns_first
end



и при попытке вызвать Ns::First#build_second_model вылетает эксепшен о не известном атрибуте first_id

Код

xandox@stitche /tmp/test_app$ rails console
Loading development environment (Rails 3.1.0.rc1)
irb(main):001:0> f = Ns::First.new
=> #<Ns::First id: nil, created_at: nil, updated_at: nil>
irb(main):002:0> f.second_model
=> nil
irb(main):003:0> f.build_second_model
ActiveRecord::UnknownAttributeError: unknown attribute: first_id
    from /var/lib/gems/1.8/gems/activerecord-3.1.0.rc1/lib/active_record/base.rb:1728:in `assign_attributes'
   from /var/lib/gems/1.8/gems/activerecord-3.1.0.rc1/lib/active_record/base.rb:1722:in `each'
    from /var/lib/gems/1.8/gems/activerecord-3.1.0.rc1/lib/active_record/base.rb:1722:in `assign_attributes'
   from /var/lib/gems/1.8/gems/activerecord-3.1.0.rc1/lib/active_record/associations/singular_association.rb:30:in `build'
    from /var/lib/gems/1.8/gems/activerecord-3.1.0.rc1/lib/active_record/associations/builder/singular_association.rb:33:in `build_second_model'
    from (irb):3
irb(main):004:0>


Интуиция подсказывает, что это баг в рельсах, но хотелосьбы быть до конца увереным, что я все делаю правильно, так как в рельсах еще не очень разбираюсь.
PM MAIL   Вверх
XandoX
Дата 30.5.2011, 18:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 5.5.2006
Где: Екатеринбург

Репутация: нет
Всего: нет



разобрался, помгли ребята с #rubyonrails 
оказываеться для указания refernces для моделий в одном наймспэйсе не надо ставить префикс наэймспэйса, то есть вторая миграция должна выглядить так

Код

class CreateNsSeconds < ActiveRecord::Migration
  def change
    create_table :ns_seconds do |t|
      t.references :first, :null => false
 
      t.timestamps
    end
    add_index :ns_seconds, :ns_first_id, :unique => true
  end
end


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0610 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.