gpt4 book ai didi

ruby-on-rails - 如何db :seed my acts-as-taggable-on tags?

转载 作者:行者123 更新时间:2023-12-04 13:43:38 24 4
gpt4 key购买 nike

我正在尝试在数据库中创建大量标签,有人知道如何使用gem acts-as-taggable-on进行此操作吗?

产品表:

create_table :products do |t|
t.string :name
t.date :date
t.decimal :price, :default => 0, :precision => 10, :scale => 2
t.integer :user_id
end

:tag_list字段是由ActsAsTaggableOn的迁移创建的虚拟列:
class ActsAsTaggableOnMigration < ActiveRecord::Migration
def self.up
create_table :tags do |t|
t.string :name
end

create_table :taggings do |t|
t.references :tag

# You should make sure that the column created is
# long enough to store the required class names.
t.references :taggable, :polymorphic => true
t.references :tagger, :polymorphic => true

t.string :context

t.datetime :created_at
end

add_index :taggings, :tag_id
add_index :taggings, [:taggable_id, :taggable_type, :context]
end

def self.down
drop_table :taggings
drop_table :tags
end
end

这是我的 products/form.html.erb 中的 :tag_list字段
<div class="field">
<%= f.label :tag_list %>:
<%= f.text_field :tag_list %>
</div>

我试图做这样的事情。
Product.create([
{:tag_list => 'Foods'},
{:tag_list => 'Electronics'},
{:tag_list => 'Pizza'},
{:tag_list => 'Groceries'},
{:tag_list => 'Walmart'},
{:tag_list => 'Apples'},
{:tag_list => 'Oranges'} ])

但是我缺乏RoR技能告诉我这是错误的方法,我需要帮助,有什么建议吗?

最佳答案

您可以在seeds.rb中尝试以下操作:

list = ['tag 1', 'tag 2', ...]

list.each do |tag|
ActsAsTaggableOn::Tag.new(:name => tag).save
end

显然,将列表数组的值替换为所需的标签。

注意:这只会填充标签表。我希望那是您想要的。

希望这可以帮助!

关于ruby-on-rails - 如何db :seed my acts-as-taggable-on tags?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6413681/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com