суббота, 2 июля 2011 г.

Re: Связи моделей

Ошибка потому, что в консоли ты вызываешь Add_field, хотя класс (модель) называется AddField.

--
Andrey Ognevsky

On Saturday, July 2, 2011 at 6:56 PM, tr0y wrote:

Под веб не писал со студенчества, а тут увидел несколько видео уроков по рельсам и практически влюбился, решил для ознакомления сделать не большой проектик.
Структуру БД в виде картинки и хмл для http://ondras.zarovi.cz/sql/demo/ прикрепил.
trips - основная таблица, обязательные поля
add_fields - дополнительные поля
add_fields_values - возможные значения дополнительных полей
add_trips - соединительная таблица?, это я туториалов начитался, до этого я её считал отдельной, обязательной сущностью

На сколько правильна структура? Я все ещё в таблицах проектирую, а не в моделях.
Как правильно настроить связи в соответствии с вышиописанной логикой, на текущий момент я родил:

#add_fields_value.rb
> class AddFieldsValue < ActiveRecord::Base
belongs_to :add_field
> end

#add_field.rb
> class AddField < ActiveRecord::Base
has_many :add_fields_values, :dependent => :destroy
has_many :trips, :through => :add_trips
> end

#add_trip.rb
> class AddTrip < ActiveRecord::Base
belongs_to :trip
belongs_to :add_field
belongs_to :add_fields_value
> end

#trip.rb
> class Trip < ActiveRecord::Base
belongs_to :user
has_many :add_trips, :dependent => :destroy
has_many :add_fields, :through => :add_trips
has_many :add_fields_values, :through => :add_trips
has_one : city, :foreign_key => "city_out_id"
has_one : city, :foreign_key => "city_in_id"
> end

#user.rb
> class User < ActiveRecord::Base
has_many :trips, :dependent => :destroy
> end

#city.rb
> class City < ActiveRecord::Base
> end

в такой конфигурации:
> Loading development environment (Rails 3.0.7)
> irb(main):001:0> field = Add_field.new(name:'target')
> LoadError: Expected C:/Sites/together/app/models/add_field.rb to define Add_field
>      from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.
> 0.7/lib/active_support/dependencies.rb:492:in `load_missing_constant'
>         from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.
> 0.7/lib/active_support/dependencies.rb:183:in `const_missing'
>         from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.
> 0.7/lib/active_support/dependencies.rb:181:in `each'
>         from C:/RailsInstaller/Ruby1.8.7/lib/ruby/gems/1.8/gems/activesupport-3.
> 0.7/lib/active_support/dependencies.rb:181:in `const_missing'
>         from (irb):1

хотя не факт что ошибка из-за связей

зы то что крутить рельсы под виндой - извращение - знаю, найду куда никсы воткнуть - сразу перелезу

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Attachments:
- db.png
- tables.xml

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
 
Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий