Я использую Ruby on Rails, чтобы позволить пользователю добавить пост проекта, очень похожий на Stackoverflow.Я могу сделать это с обычной базой данных MySQL, но я не уверен, как она работает с Mongoid.
Вот как работает этот процесс:
- Пользователь пишет некоторые подробности опроект (клиент, дата, описание)
- Добавьте теги, например Stackoverflow, где им просто нужно добавить пробел между каждым.
- Отправить сообщение
Теперь в моей модели я пытаюсь разбить теги на массивы (разделяя их там, где есть пробел), а затем сохраняю теги один за другим.Однако строка для проекта и тега не ссылаются друг на друга.Project tag_ids = [] и тег project_ids = []
модель project.rb
class Project
include Mongoid::Document
include Mongoid::MultiParameterAttributes
field :client, :type => String
field :description, :type => String
field :url, :type => String
field :project_date, :type => Date
has_and_belongs_to_many :tags
attr_accessor :tag_names
after_save :assign_tags
def tag_names
@tag_names || tags.map(&:name).join(" ")
end
def assign_tags
@project = self
@project_id = self.id
if @tag_names
self.tag_names = @tag_names.split(/\s+/).map do |name|
Tag.find_or_create_by(:name => name)
end
end
end
end
модель tag.rb
class Tag
include Mongoid::Document
field :name, :type=> String
has_and_belongs_to_many :projects
end
Любые идеи относительно того, какдобавить эти ссылочные идентификаторы?Спасибо!