Поэтому я пытаюсь обновить любой из моих соответствующих ресурсов новым тегом, исходя из того, что такое старый.
Я хочу обновить любое сообщение с тегом test
, чтобы все сообщения с тегом test теперь были помечены, например, new-testing-tag
.
Мой другой вопрос: если у меня есть несколько тегов, связанных с сообщением, и я просто хочу обновить один из них, будет ли процесс таким же?
например: сообщение имеет теги «javascript» и «премиум» — я просто хочу изменить «премиум» на бесплатно. Это возможно?
попробовал все это в консоли рельсов
Post.tagged_with("test").update_all(tag: "new-testing-tag")
Post.tagged_with("test").update_all(tags: "test2")
Post.tagged_with("test").update_all(tag_list: "test2")
ни один из них не сработал, все они возвращают это: ActiveRecord::StatementInvalid: PG::UndefinedColumn: ОШИБКА: столбец «тег» отношения «multiple_choice_questions» не существует LINE 1: UPDATE «multiple_choice_questions» SET «tag» = ' test2' ГДЕ...
Это в моем файле schema.db
create_table "taggings", force: :cascade do |t|
t.bigint "tag_id"
t.string "taggable_type"
t.bigint "taggable_id"
t.string "tagger_type"
t.bigint "tagger_id"
t.string "context", limit: 128
t.datetime "created_at"
t.index ["context"], name: "index_taggings_on_context"
t.index ["tag_id", "taggable_id", "taggable_type", "context", "tagger_id", "tagger_type"], name: "taggings_idx", unique: true
t.index ["tag_id"], name: "index_taggings_on_tag_id"
t.index ["taggable_id", "taggable_type", "context"], name: "index_taggings_on_taggable_id_and_taggable_type_and_context"
t.index ["taggable_id", "taggable_type", "tagger_id", "context"], name: "taggings_idy"
t.index ["taggable_id"], name: "index_taggings_on_taggable_id"
t.index ["taggable_type", "taggable_id"], name: "index_taggings_on_taggable_type_and_taggable_id"
t.index ["taggable_type"], name: "index_taggings_on_taggable_type"
t.index ["tagger_id", "tagger_type"], name: "index_taggings_on_tagger_id_and_tagger_type"
t.index ["tagger_id"], name: "index_taggings_on_tagger_id"
t.index ["tagger_type", "tagger_id"], name: "index_taggings_on_tagger_type_and_tagger_id"
end
create_table "tags", force: :cascade do |t|
t.string "name"
t.integer "taggings_count", default: 0
t.index ["name"], name: "index_tags_on_name", unique: true
end
Post.tagged_with("test")
, это сработает @Nezir - person mazing   schedule 06.10.2018