私の主なモデルは、ユーザーがいて、レシピがあるということです。ユーザーあたりの投稿あたりのタグは、ユーザーが表示されていません。
私は、各ユーザーが個々のタグでレシピにタグ付けできるようにタグ付け構造を実装しようとしています。したがって、レシピを表示するときには、自分自身が追加したタグだけが表示されます。
私は2つのモデルハッシュタグとハッシュタグを作成しました。これは結合テーブルです。それはように設定されている:
モデル/ hashtags.rb
class Hashtag < ActiveRecord::Base
has_many :hashtaggings
has_many :recipes, through: :hashtaggings
has_many :users, through: :hashtaggings
end
モデル/ hashtagging.rb
class Hashtagging < ActiveRecord::Base
belongs_to :user
belongs_to :hashtag
belongs_to :recipe
end
モデル/ recipe.rb
class Recipe < ActiveRecord::Base
...
has_and_belongs_to_many :users
has_many :hashtaggings
has_many :hashtags, through: :hashtaggings
....
def all_hashtags=(name)
self.hashtags = name.split(",").map do |name|
Hashtag.where(name: name.strip).first_or_create!
end
end
def all_hashtags
self.hashtags.map(&:name).join(",")
end
end
class User < ActiveRecord::Base
...
has_many :hashtaggings
has_many :hashtags, through: :hashtaggings
...
end
これは素晴らしい作品しかし、私はハッシュタグを作成するために、私はそれのユーザーアスペクトを組み込む方法を失っています。タグを割り当てる際に、どのようにこれらのタグに現在のユーザを割り当てることができますか? 2つのステップの作成と表示があります
すごくありがとう!これは信じられないほどハッシュタグです。私はRecipeHashtagsのためのリソースを持っていないので、私はそれを作成する必要がありますか?基本的に他のモデルを使用するコントローラーですか? – blueduckyy
はい、私はそう思っています...私は詳細を一分で私の答えを更新します。 –
私はそれを得ていると思う。だから基本的にネストされたリソースでは、それを作成するためのURLから:recipe_idを取得します。私は1つの最後の質問があります。これはどのように創造の形に変換されますか?以前はレシピパラメータだったので、簡単にフォームに収めることができました。レシピパラメータとしてall_hashtagsを保持する方法のようには見えません。これは、current_userをモデルに渡すことはできません。では、これをフォームビューにどのように配置しますか? – blueduckyy