Ruby on rails 4 Rails插件。如何在插件任务期间将数据插入数据库?
我需要为我的rails插件运行种子并将它们放入任务中。 下面的代码将空记录插入到表中Ruby on rails 4 Rails插件。如何在插件任务期间将数据插入数据库?,ruby-on-rails-4,activerecord,plugins,Ruby On Rails 4,Activerecord,Plugins,我需要为我的rails插件运行种子并将它们放入任务中。 下面的代码将空记录插入到表中 namespace :my_plugin do desc "Run seed for plugin" task :seed => :environment do settings = [ [ 'Detail', 'detail' ], [ 'Approximate', 'approximate' ] ] settings.each do |n
namespace :my_plugin do
desc "Run seed for plugin"
task :seed => :environment do
settings = [
[ 'Detail', 'detail' ],
[ 'Approximate', 'approximate' ]
]
settings.each do |name, anonym|
Setting.create!( name: name, alias: anonym )
end
end
end
更新:
我已经找到了解决这个问题的办法
settings.each do |name, anonym|
Setting.find_or_create_by(alias: anonym) do |setting|
setting.name = name
end
end
您已经将设置声明为数组,然后尝试对其进行迭代,就像对键、值存储所做的那样 您可以执行以下操作以使其正常工作
namespace :my_plugin do
desc "Run seed for plugin"
task :seed => :environment do
settings = {'Detail' => 'detail',
'Approximate' => 'approximate'}
]
settings.each do |name, anonym|
Setting.create!( name: name, alias: anonym )
end
end
end
您已经将设置声明为数组,然后尝试对其进行迭代,就像对键、值存储所做的那样 您可以执行以下操作以使其正常工作
namespace :my_plugin do
desc "Run seed for plugin"
task :seed => :environment do
settings = {'Detail' => 'detail',
'Approximate' => 'approximate'}
]
settings.each do |name, anonym|
Setting.create!( name: name, alias: anonym )
end
end
end
迭代器在这两种情况下都可以正常工作。我检查了它,只是插入了一行“{name}{anonyman}”
它显示:详细信息近似值您在设置模型时有任何验证吗?可能是一些验证失败了还是什么?我在这个modelIterator中没有任何验证,在这两种情况下都可以正常工作。我检查了它,只是插入了一行“{name}{anonyman}”
它显示:详细信息近似值您在设置模型时有任何验证吗?可能是一些验证失败了还是什么?我在这个模型中没有任何验证