Ваша проблема в том, что вы используете has_and_belongs_to_many
, который не основан на Model
, поэтому вы не можете получить к нему доступ как к объекту. Вы можете создать Model
, который выполняет ассоциации, а затем вы можете создать новые объекты этой модели ассоциации. e.g.:
rails g scaffold JoinClass faculty_id:integer language_id:integer
В модели
class JoinClass < ActiveRecord::Base
belongs_to :faculty
belongs_to :language
end
В других моделях:
Факультет
class Faculty < ActiveRecord::Base
has_many :join_classes
has_many :languages, :though => :join_classes
end
Язык
class Language < ActiveRecord::Base
has_many :join_classes
has_many :faculties, :through => :join_classes
end
Тогда вы сможете добавлять ассоциации, создавая объекты ассоциаций, которые не сохраняются автоматически. Например, у вас есть String
, содержащий идентификаторы, которые содержат идентификаторы языковых объектов, которые должны быть связаны, называемые language_ids
в FacultyController
:
language_ids.split(",").each do |language_id|
JoinClass.create(:faculty_id => @faculty.id, :language_id => language_id)
end
Конечно, этот код должен быть обусловлен и помещен после сохранения факультета.