def showTags(post)
tagString = ''
tagString += "Politics " if post.tags(:politics)
tagString += "Technology " if post.tags(:technology)
tagString += "Entertainment " if post.tags(:entertainment)
tagString += "Sports " if post.tags(:sports)
tagString += "Science " if post.tags(:science)
tagString += "Crime " if post.tags(:crime)
tagString += "Business " if post.tags(:business)
tagString += "Social " if post.tags(:social)
tagString += "Nature " if post.tags(:nature)
tagString += "Other " if post.tags(:other)
return tagString
end
の値にアクセスするためにどのように私のタグモデルは10のブール値(政治、技術、等...)とbelongs_to :post
を持っています。新しい投稿を作成すると、各フィールドに対応するチェックボックスが表示されます。投稿をした後、いくつかの真実といくつかの偽りの価値があります。問題は、どのタグがこの投稿に属しているかを表示するために、このメソッドをpost#indexで呼び出すときに発生します。問題は、すべての単語が表示されていることです。私はコンソールで再生し、post.tagsは正しいです(いくつかの真といくつかの偽の値)が、常にif post.tags(:politics)
(または何でも)は常にtrueを返します。私はif post.tags.politics
を使ってみましたが、それはちょうどエラーを与えました。
誰か助けてもらえますか?
post.tags.each {|tag| puts tag.politics}
またはインデックスそれに:あなたはそれを反復処理する必要がありますいずれかのように、あなたはあなたのPost
クラスであなたのTag
クラスでbelongs_to :post
とhas_many :tags
を持っていると仮定すると
ええと、このエラーが発生します** Symbolを整数に変換できません**大括弧に切り替えると – Vasseurth
私は答えを更新しましたが、あなたのモデルがはっきりしていないために仮定しなければなりませんでした。 –
ありがとうございます、しかし、私は宝石を使用してtaggableとして行動すると思っています。または、別のテーブルを使用する代わりに、ブール値のすべてをポストテーブルに入れるだけでも構いません – Vasseurth