У меня есть код
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 верны (некоторые значения true и некоторые значения false), однако if post.tags(:politics)
(или что-то еще) всегда возвращает true. Я попытался использовать if post.tags.politics
, но это просто выдало ошибку.
Может кто-нибудь, пожалуйста, помогите мне с этим.