gpt4 book ai didi

ruby-on-rails - rake db :migrate 的奇怪错误

转载 作者:数据小太阳 更新时间:2023-10-29 07:39:27 27 4
gpt4 key购买 nike

我用谷歌搜索了一下,上面似乎什么都没有。

尝试为我的项目设置设计时发生此错误。使用 gem "devise" 将 devise 捆绑安装到我的 Gemfile 后,我运行了 rails g devise:install,然后运行了 rails g devise authorize。设计授权创建了一些数据库迁移,并且在迁移这些更改后,我得到了这个:

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (2 for 1)/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/attribute_assignment.rb:14:in `assign_attributes'

我应该在最近的 delayed_jobs(根据 Gemfile.lock 为 3.2.4)。如果问题确实出在 attribute_assignment.rb 中并且我在本地修复了它,那么当我将我的代码插入生产环境时,它不会在那里中断吗?这是其他人以前见过的问题吗?是 Devise 的问题,还是其他问题?我该如何解决这个问题?

我什至不知道从哪里开始,但我已经尝试过捆绑更新,我在谷歌上搜索了这个错误一段时间,尝试了不同的组合,采用了相似的搜索主题并进行了研究,然后我'我完全迷路了。我没有找到任何相关的东西。我不知道错误的真正来源,或任何东西。我什至不确定自己在寻找什么。

rails 4.1.2

ruby 2.0

Ubuntu 12.04lts

完整输出-

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
== 20140609160442 DeviseCreateAuthorizes: migrating ===========================
-- create_table(:authorizes)
-> 0.1993s
-- add_index(:authorizes, :email, {:unique=>true})
-> 0.0559s
-- add_index(:authorizes, :reset_password_token, {:unique=>true})
-> 0.0561s
== 20140609160442 DeviseCreateAuthorizes: migrated (0.3121s) ==================

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (2 for 1)/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/attribute_assignment.rb:14:in `assign_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:17:in `perform_attribute_assignment'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:24:in `assign_attributes_with_attr_encrypted'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/core.rb:198:in `initialize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/validations.rb:15:in `create!'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:1023:in `record_version_state_after_migrating'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:993:in `block in execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:1038:in `block in ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `block in transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/connection_adapters/abstract/database_statements.rb:209:in `within_new_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/connection_adapters/abstract/database_statements.rb:201:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/transactions.rb:208:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:1038:in `ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:991:in `execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:953:in `block in migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:949:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:949:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:807:in `up'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/migration.rb:785:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activerecord-4.1.2.rc1/lib/active_record/railties/databases.rake:34:in `block (2 levels) in <top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/home/josh/TG/tax-guard-internal/bin/rake:8:in `<top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:241:in `load'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:241:in `block in load'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:232:in `load_dependency'
/home/josh/.rvm/gems/ruby-2.0.0-p247@latest/gems/activesupport-4.1.2.rc1/lib/active_support/dependencies.rb:241:in `load'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
-e:1:in `<main>'
Tasks: TOP => db:migrate

迁移-(这是自动的,我没有写它并且对此了解不多。)

class DeviseCreateAuthorizes < ActiveRecord::Migration
def change
create_table(:authorizes) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""

## Recoverable
t.string :reset_password_token
t.datetime :reset_password_sent_at

## Rememberable
t.datetime :remember_created_at

## Trackable
t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at
t.datetime :last_sign_in_at
t.string :current_sign_in_ip
t.string :last_sign_in_ip

## Confirmable
# t.string :confirmation_token
# t.datetime :confirmed_at
# t.datetime :confirmation_sent_at
# t.string :unconfirmed_email # Only if using reconfirmable

## Lockable
# t.integer :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
# t.string :unlock_token # Only if unlock strategy is :email or :both
# t.datetime :locked_at


t.timestamps
end

add_index :authorizes, :email, unique: true
add_index :authorizes, :reset_password_token, unique: true
# add_index :authorizes, :confirmation_token, unique: true
# add_index :authorizes, :unlock_token, unique: true
end
end

Rails 4.1.0 也不工作,错误如下-

** Invoke db:migrate (first_time)
** Invoke environment (first_time)
** Execute environment
** Invoke db:load_config (first_time)
** Execute db:load_config
** Execute db:migrate
== 20140609160442 DeviseCreateAuthorizes: migrating ===========================
-- create_table(:authorizes)
-> 0.2831s
-- add_index(:authorizes, :email, {:unique=>true})
-> 0.0666s
-- add_index(:authorizes, :reset_password_token, {:unique=>true})
-> 0.0559s
== 20140609160442 DeviseCreateAuthorizes: migrated (0.4060s) ==================

rake aborted!
StandardError: An error has occurred, this and all later migrations canceled:

wrong number of arguments (2 for 1)/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/attribute_assignment.rb:14:in `assign_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:17:in `perform_attribute_assignment'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/attr_encrypted-1.3.2/lib/attr_encrypted/adapters/active_record.rb:24:in `assign_attributes_with_attr_encrypted'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/core.rb:198:in `initialize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/inheritance.rb:30:in `new'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/protected_attributes-1.0.7/lib/active_record/mass_assignment_security/validations.rb:15:in `create!'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:1023:in `record_version_state_after_migrating'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:993:in `block in execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:1038:in `block in ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `block in transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:219:in `within_new_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/connection_adapters/abstract/database_statements.rb:211:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/transactions.rb:208:in `transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:1038:in `ddl_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:991:in `execute_migration_in_transaction'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:953:in `block in migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:949:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:949:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:807:in `up'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/migration.rb:785:in `migrate'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/activerecord-4.1.0/lib/active_record/railties/databases.rake:34:in `block (2 levels) in <top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:240:in `call'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:240:in `block in execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:235:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:179:in `block in invoke_with_call_chain'
/home/josh/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/monitor.rb:211:in `mon_synchronize'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:106:in `block (2 levels) in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:106:in `each'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:106:in `block in top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:78:in `block in run'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/gems/rake-10.3.2/bin/rake:33:in `<top (required)>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/rake:23:in `load'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/rake:23:in `<main>'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/ruby_noexec_wrapper:14:in `eval'
/home/josh/.rvm/gems/ruby-2.0.0-p247@410/bin/ruby_noexec_wrapper:14:in `<main>'
Tasks: TOP => db:migrate

最佳答案

看起来您已经安装了 protected_attributes gem(它在您的堆栈跟踪中提到)。您能否仔细检查这些迁移添加的新属性是否列在各种模型的“attr_accessible”语句中,然后再次尝试运行 rake db:migrate?

关于ruby-on-rails - rake db :migrate 的奇怪错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140705/

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