相关疑难解决方法(0)

PG不可定义的错误关系用户不存在

我之前看到过这个问题,但仅限于rspec.我还没有进行测试,因为它对我来说太进步了,但有一天我会尽快!:P

当我尝试使用我的应用注册/登录时出现此错误.我不知道在哪里修理它.我使用devise来创建我的用户,并使用omn​​iauth2来登录谷歌.

这是错误

ActiveRecord::StatementInvalid at /users/auth/google_oauth2/callback
PG::UndefinedTable: ERROR:  relation "users" does not exist
LINE 5:              WHERE a.attrelid = '"users"'::regclass
                                        ^
:             SELECT a.attname, format_type(a.atttypid, a.atttypmod),
                     pg_get_expr(d.adbin, d.adrelid), a.attnotnull, a.atttypid, a.atttypmod
              FROM pg_attribute a LEFT JOIN pg_attrdef d
                ON a.attrelid = d.adrelid AND a.attnum = d.adnum
             WHERE a.attrelid = '"users"'::regclass
               AND a.attnum > 0 AND NOT a.attisdropped
             ORDER BY a.attnum
Run Code Online (Sandbox Code Playgroud)

我试过rake db:migrate,但它已经创建,在架构表中存在用户.有没有人以前得到这个错误?

database.yml的

#   gem install pg -- --with-pg-config=/opt/local/lib/postgresql84/bin/pg_config
# On Windows:
# …
Run Code Online (Sandbox Code Playgroud)

database ruby-on-rails oauth-2.0 rake-task ruby-on-rails-3

88
推荐指数
8
解决办法
8万
查看次数

如果我正在运行 rake 命令,如何在 rails 中检测?

在 Rails 中,您可能希望您的环境在启动时做不同的事情,这取决于您是否正在运行 rake 任务。例如,我的用例是在应用程序启动时将数百 MB 的缓存加载到内存中。我们显然不希望这种情况发生在 rake 命令上。

---更新--- 以下是可靠的解决方案,适用于heroku。

is_rake = (ENV['RACK_ENV'].blank? || ENV['RAILS_ENV'].blank? || !("#{ENV.inspect}" =~ /worker/i).blank?)
Run Code Online (Sandbox Code Playgroud)

environment rake ruby-on-rails

6
推荐指数
2
解决办法
1316
查看次数

如何在插件init.rb中正确实例化模型?

如何正确初始化需要实例化插件本身定义的模型(读取数据库记录)的Redmine插件?

例如,我有一个my_redmine_plugin附带模型的插件MyPluginModel.关于插件初始化,我想

  • MyPluginModel从DB 读取记录
  • 用记录运行一些初始化代码

给出以下代码:

require 'redmine'

Redmine::Plugin.register :my_redmine_plugin do
  name 'My Redmine Plugin'

  # ...    
end

Rails.configuration.to_prepare do
  m = MyPluginModel.find(1)
  run_some_init_code(m)
end
Run Code Online (Sandbox Code Playgroud)

它看起来像to_prepare在迁移之前运行:

$ bundle exec rake redmine:plugins:migrate NAME=my_redmine_plugin

`table_structure': Could not find table 'mypluginmodel' (ActiveRecord::StatementInvalid)
...
Run Code Online (Sandbox Code Playgroud)

当我to_prepare在迁移期间注释掉块时,一切正常.有没有办法检测迁移过程?

ruby-on-rails redmine redmine-plugins ruby-on-rails-4 rails-activerecord

6
推荐指数
1
解决办法
177
查看次数

NoMethodError:未定义的方法`needs_migration?' 对于ActiveRecord :: Migrator:Class

我收到以下错误消息,不知道如何解决它.有人可以帮忙吗?

NoMethodError:未定义的方法`needs_migration?' 对于ActiveRecord :: Migrator:Class

这是config.ru代码:

require './config/environment'

if ActiveRecord::Migrator.needs_migration?
  raise 'Migrations are pending. Run `rake db:migrate` to resolve the issue.'
end

use Rack::MethodOverride

use UsersController
use ArtworkController
run ApplicationController
Run Code Online (Sandbox Code Playgroud)

activerecord ruby-on-rails nomethoderror

3
推荐指数
1
解决办法
1300
查看次数