我正在使用Heroku上托管的Rails 5.1,我使用以下命令来迁移我的数据库:
heroku run rake db:migrate -a [my app name]
所有迁移本身都正确完成:
SQL (1.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180504164326"]]
(2.1ms) COMMIT
Migrating to AddPinToStaff (20180519024721)
(1.5ms) BEGIN
== 20180519024721 AddPinToStaff: migrating ====================================
-- add_column(:staff, :pin_number, :string)
(4.2ms) ALTER TABLE "staff" ADD "pin_number" character varying
-> 0.0045s
== 20180519024721 AddPinToStaff: migrated (0.0046s) ===========================
Run Code Online (Sandbox Code Playgroud)
这是我创建的最后一个迁移文件,所以这一切似乎都有效.然后,这运行:
SQL (1.6ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) RETURNING "version" [["version", "20180519024721"]]
(2.4ms) COMMIT
ActiveRecord::InternalMetadata Load (1.7ms) SELECT "ar_internal_metadata".* FROM "ar_internal_metadata" WHERE "ar_internal_metadata"."key" …
Run Code Online (Sandbox Code Playgroud) 我正在使用Postgresql在Ruby on Rails 4上工作,而且我遇到了一些麻烦.我们有一个名为Active Record的模型AttendanceRecord
属于一AttendanceDay
,AttendanceSwipe
,Course
,和CourseTimeSlot
.出勤记录应该在这些领域是独一无二的,但是出了问题,重复出现了.因此,我写了一个方法来查找所有重复的出勤记录,并且只保留其中一个.
在该方法的过程中,我构建了一个共享相同属性的对象的Active Record Relation,如下所示:
records = AttendanceRecord.where(course_id: attributes[0], course_time_slot_id: attributes[1], attendance_swipe_id: attributes[2], attendance_day_id: attributes[3])
关系不错,对吗?
接下来,我找到了我想要保留并命名的对象to_keep
.然后,我试图从关系中删除该对象,如下所示:
records.delete(to_keep)
不幸的是,我发现该delete
方法在一个Relation上的工作方式与在Array上的工作方式略有不同.它不是简单地从列表中删除对象,而是实际上从数据库中删除它(没有回调).
所以:我想知道是否有一个我遗漏的方法,它将to_keep
从关系中删除我的对象而不实际触摸对象本身.然后,我将能够安全地打电话records.destroy_all
,愉快地开展业务.:)
sql activerecord ruby-on-rails relational-database ruby-on-rails-4
我正在尝试在Mac OS Sierra(10.13.3)计算机上运行Ruby on Rails项目.当我导航到Rails文件夹时,RVM告诉我以下内容:
Required ruby-1.9.3-p392 is not installed.
To install do: 'rvm install "ruby-1.9.3-p392"'
Run Code Online (Sandbox Code Playgroud)
但是,当我安装时,我得到以下内容:
$ rvm install "ruby-1.9.3-p392"
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.13/x86_64/ruby-1.9.3-p392.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system..........
Installing required custom packages: homebrew/versions.
Error running 'requirements_osx_brew_install_custom homebrew/versions',
please read /Users/petercormack/.rvm/log/1518211184_ruby-1.9.3-p392/install_custom.log
Requirements installation failed with status: 1.
Run Code Online (Sandbox Code Playgroud)
当我查看该日志文件时,我看到以下内容: …