Tag: 种子

Rails db:seed error“undefined method`finder_needs_type_condition?’ 为零:NilClass“

尝试填充我的sqlite数据库时遇到问题。 关于特定错误“finder_needs_type_condition?”的信息不多。 我可以找到,但我对Rails没有多少经验,甚至怀疑问题可能在哪里。 模型: class Character < ActiveRecord::Base validates :user_id, :name, :class, presence: true end 控制器: class CharactersController < ApplicationController before_action :authenticate_user! respond_to :json @user_id = current_user[:id] def index @characters = Character.all end def show @character = Character.find(params[:id]) end def new @character = Character.new end def create @characters = Character.all @character = Character.create(character_params) end private […]

seeds.rb文件的function是什么?

我是Ruby on Rails的新手。 我不知道seed.rb文件的function是什么,为什么我们使用这个文件,以及为什么我们需要运行rake db:seed命令。 任何人都可以举例说明吗?

Rails:让这个rake任务知道它在测试环境中

我在lib/tasks文件夹中定义了以下rake任务: namespace :db do namespace :test do task :prepare => :environment do Rake::Task[“db:seed”].invoke end end end 现在,当我运行rake db:test:prepare时,这样做是为了测试数据库的种子。 我这样做是因为我有一些必须存在的基本记录才能让应用程序运行,所以它们不是可选的,也不能真正被嘲笑。 另外,我有一个在开发和生产中使用S3进行资产存储的模型,但我不希望它使用S3进行测试。 我在模型中设置了一个方法,如果Rails.env.test?存储路径从S3更改为本地Rails.env.test? 但是,这不起作用。 我想知道rake任务是否知道它被调用的环境,而事实certificate它不是。 我把它放在我的seeds.rb文件的顶部: puts “Environment Check: Rails Environment = #{Rails.env}” 果然,当任务运行时,会打印出来: Environment Check: Rails Environment = development 那么,我怎样才能重做这个rake任务,以便当它播种测试数据库时它知道它正在为测试数据库播种?

如何在使用Ruby on Rails 3的播种过程中避免validation,回调和’attr_accessible’效果?

我正在使用Ruby on Rails 3,我正在尝试在我的应用程序数据库中播种数据。 在’RAILS_ROOT / models / user.rb’中我有: class User true validates :surname, :presence => true validates :email, :presence => true end 在’RAILS_ROOT / db / seeds.rb’中我有: # Test 1 User.find_or_create_by_email ( :name => “Test1 name”, :surname => “Test1 surname”, :email => “test1@test1.test1” ) # Test2 User.find_or_create_by_email ( :name => “”, :surname => “”, […]

在Ruby on Rails中使用Devise为用户播种

在我的开发和测试环境中,我想用一堆用户为数据库播种。 我正在使用Ruby on Rails v3.2.8和最新的Devise。 所以我在db / seeds.rb文件中添加了这一行: User.create(email: ‘test@example.com’, encrypted_password: ‘#$taawktljasktlw4aaglj’) 但是,当我运行rake db:setup ,我收到以下错误: 耙子流产了! 无法批量分配受保护的属性:encrypted_pa​​ssword 种子用户的正确方法是什么?

在Rails中撤消以前播种的数据

我通过编辑db/seed.rb文件并执行rake db:seed命令将一行数据播种到我的表中。 在不知不觉中,我把一些错误的信息放到那一行。 所以我想删除以前添加的数据行。 是否有rake db:rollback for rake db:migrate类的rake命令。

我能以某种方式从我的rails应用程序执行我的db / seeds.rb文件吗?

我正在构建一个演示,我想让一个非技术人员很容易设置和运行演示。 我已经构建了一个包含大量演示数据的seeds.rb文件。 我希望能够通过页面链接提供管理员级别的操作,将rails应用程序重置为已知状态。 我不想为这些非技术演示者提供命令行和耙子,因为他们可能会在脚下射击。 我已经研究过在方法中使用load’db / seeds.rb’,但这并不是我想要的。 我知道我错过了什么,但是什么?

使用回形针在heroku种子图像

当我运行heroku run rake db:seed我得到 Command :: identify -format ‘%wx%h,%[exif:orientation]’ ‘/tmp/image20130219-2-1gk1yip.png[0]’ Command :: composite -gravity Center /app/public/media/watermark.png “/tmp/image20130219-2-1gk1yip.png[0]” -resize “1×1<" "/tmp/image20130219-2-1gk1yip.png20130219-2-1ng5f6c[0]" Command :: file -b –mime '/tmp/image20130219-2-1gk1yip.png20130219-2-1ng5f6c' Command :: identify -format '%wx%h,%[exif:orientation]' '/tmp/image20130219-2-1gk1yip20130219-2-t3caqg.png20130219-2-1ng5f6c[0]' Command :: convert "/tmp/image20130219-2-1gk1yip20130219-2-t3caqg.png20130219-2-1ng5f6c[0]" -resize "260×190" "/tmp/image20130219-2-1gk1yip20130219-2-t3caqg.png20130219-2-1mz0u16[0]" Command :: file -b –mime '/tmp/image20130219-2-1gk1yip20130219-2-t3caqg.png20130219-2-1mz0u16' [paperclip] Saving attachments. 我得到了我的Stuff和有效的db记录,但是在公共文件夹中没有重新创建图像..如果我通过视图forms添加图像一切都很好。 我的种子 Stuff.create! title: ‘title’, description: ‘desc’, […]

在seeds.rb中使用Paperclip

我们说我的seeds.rb文件中有以下条目: Image.create(:id => 52, :asset_file_name => “somefile.jpg”, :asset_file_size => 101668, :asset_content_type => “image/jpeg”, :product_id => 52) 如果我播种它,它会尝试处理指定的图像,我收到此错误: No such file or directory – {file path} etc… 我的图像备份,所以我真的不需要创建它们; 但我需要记录。 我不能在我的模型中评论paperclip指令; 然后它起作用; 但我想可能还有另一种解决方案。 是否还有其他模式可以实现它? 或者告诉回形针不要处理图像?

将seeds.rb拆分成多个部分?

我想将seeds.rb文件分成多个部分以便于维护; a.rb中的所有A,b.rb中的B等等。单独的文件位于带有seeds.rb的db /目录中。 每个文件都包含一堆“A.create”或“B.create”调用,我想从seeds.rb调用这些文件。 我试过了: include ‘a’ include ‘b’ 和 load ‘a.rb’ load ‘b.rb’ 在我的seeds.rb中,但是当我调用“rake db:seed”时它们似乎没有被处理。 这可能更像是一个直接的ruby问题而不是rails问题,但为了完整性我在Mac上使用Ruby 1.9.2和Rails 3。