Ruby on Railsを使用して、Stackoverflowのようにプロジェクト投稿を追加できます。私は通常のMySQLデータベースでこれを行うことができますが、Mongoidとどのように動作するかはわかりません。MongoidとRuby on Railsの記事を追加中にユーザーに「タグ」を追加させる
これは、プロセスがどのように動作するかです:
- ユーザーは、プロジェクト(クライアント、日付、説明)
- に関するいくつかの詳細は、彼らは単にそれぞれの間にスペースを追加する必要がStackOverflowの、などのタグを追加書き込み1。
- は私のモデルでは、私は、配列(スペースがある分割)にタグを分割しようとすると、その後のタグを1つずつ保存今
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
これらの参照IDを追加する方法のように任意のアイデア?ありがとう!
ああ、と入力_form.html.erbこの
<%= f.text_field :tag_names %>
StackOverflowのは、実際になり、タグを分割するためにJavaScriptを使用して、彼らは前処理しなければわからないが、それましたフロントエンドで自明です。 –
問題はタグの分割ではありません。私はそれを得ることができます。 tag_idsが参照されています。私はそのタグで参照されているプロジェクトとproject_idです。 –