2013-10-08 4 views
0

В моем приложении rails у меня есть три таблицы: forms, languages и levels.Ссылка на таблицу соединений с другой таблицей

My forms таблица содержит информацию о планах людей представить
В нем есть различные столбцы, касающиеся личной информации подателя, и один из них - это уровень знаний на иностранном языке.

Моя languages таблица содержит языки, которые должны быть представлены в виде учебного плана, и она имеет столбцы id, name, created_at и updated_at.

Моя levels таблица содержит уровни знания языка, сейчас он имеет только Basic, Medium и Advanced, и имеет столбцы id, name, created_at и updated_at.

я был в состоянии связать свою languages таблицу и мой levels таблицу, используя следующий код:

#app/models/level.rb 
class Level < ActiveRecord::Base 
    has_and_belongs_to_many :languages 
end 

#app/models/language.rb 
class Language < ActiveRecord::Base 
    has_and_belongs_to_many :levels 
end 

Теперь четвертая таблица существует в моей базе данных, чтобы связать эти две таблицы, то languages_levels таблица, которая не имеет ничего иначе, кроме language_id и столбцов level_id.

Есть ли способ, с помощью Formtastic, чтобы связать эту таблицу languages_levels моих forms стола таким образом, что для каждого языка, записанного в languages таблице, набор кнопок радио входов, присутствующий в таблице levels появляться?

ответ

1

Для того, что вы описали, с помощью моста таблицы (используя language_lavels таблицу с has_and_belongs_to_many), как представляется, неправильный подход. Вам просто нужны трехсторонние отношения «один ко многим».

Другими словами, вы должны создать модель, скажем LanguageLevel, которая принадлежит Form, Language и Level. Затем вы можете заполнить LanguageLevel за каждые Language за каждые Form.

+0

Проведя 3 часа, не зная, что делать, я попробовал ваш подход, и это похоже на единственный способ сделать это. Благодаря! –

0

Установите этот флажок скринкасты они могут направить вас в правильном направлении:

http://railscasts.com/episodes/47-two-many-to-many

http://railscasts.com/episodes/185-formtastic-part-2

+0

Не слишком помог мне, потому что я пытаюсь сделать трехстороннее соединение, и это поможет только с обычными двумя столами. –

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