我想从 Rails 控制台获取当前数据库中的模式列表。目前,我正在执行原始 sql 以通过以下方式获取信息
ActiveRecord::Base.connection.execute("select schema_name from information_schema.schemata")
Run Code Online (Sandbox Code Playgroud)
是否有更正确的方法使用 ActiveRecord 从 Rails 控制台检索此信息?
我正在使用pry,来自控制台的ActiveRecord查询总是打印出相应的SQL语句.我不想要这种行为.谷歌搜索我只看到必须通过将ActiveRecord记录器设置为标准输出明确实现.
这是pry的默认行为还是我设置的忘记内容的结果?我怎么能阻止它?
我正在阅读本教程,并遇到了rails控制台无法识别我创建的用户模型的问题.这是我正在使用的
这是我在我的用户模型中定义的user.rb,位于sample_app/app/models/user.rb:
class user < ActiveRecord::Base
attr_accessible :name, :email
validates :name, :presence => true
end
Run Code Online (Sandbox Code Playgroud)
当我尝试引用它时,这是我在控制台中得到的:
Nicholass-MacBook-Pro:sample_app nbkincaid$ rails console
Loading development environment (Rails 3.1.1)
ruby-1.9.2-p290 :001 > user.new
NameError: undefined local variable or method `user' for main:Object from (irb):1
from /Users/nbkincaid/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands/console.rb:45:in `start'
from /Users/nbkincaid/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands/console.rb:8:in `start'
from /Users/nbkincaid/.rvm/gems/ruby-1.9.2-p290/gems/railties-3.1.1/lib/rails/commands.rb:40:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
是否有我需要遵守的特定宝石版本集,或者还有其他我缺少的东西?我不太清楚这一点.
我使用橡胶在ec2上部署了我的应用程序并且工作正常,但是当我尝试运行控制台(键入的rails控制台)时,它无法正常工作.它最初没有识别出scipt,当我试图从脚本目录运行它时,我收到了"找不到ruby.exe"的消息.有任何想法吗?
我在rails控制台上玩时间算术.我减去了两次不同的时间并找回了一个很长的数字,请看下面我的代码.
a = User.find(1).updated_at # returns Mon, 03 Mar 2014 11:07:43 UTC +00:00
b = User.find(1).created_at # returns Mon, 03 Mar 2014 08:36:50 UTC +00:00
a - b # returns 9053.699814796448
Run Code Online (Sandbox Code Playgroud)
我的问题是.这个号码是多少9053.699814796448?是时候了吗?它的单位是什么?这是如何计算的?是否可以更改结果的默认单位?
谢谢
如果我User.where(active: false)在Rails控制台中,结果很难解析.
有没有迭代(除了宝石)的任何技巧,每行输出一个值/对象?
我的Rails控制台停止工作:
$ rails c
Could not find rake-10.2.2 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
你认为跑步bundle install或bundle update工作,但不是!令我感到困惑的是,我没有使用rake 10.2.2而且它不在gemfile.lock中.我正在使用rake 10.3.2
Running via bundle exec rails console RAILS_ENV=development返回相同的错误.
尝试gem install rake -v 10.2.2只是温和地改善了这种情况.现在它正在寻找一个我不使用的不同宝石:
$ rails c
Could not find i18n-0.6.9 in any of the sources
Run `bundle install` to install missing gems.
Run Code Online (Sandbox Code Playgroud)
再次......捆绑安装就好了.Odder仍然,rails s工作正常,耙任务很好.我只是不能使用控制台!
$ bundle install
Using rake 10.3.2
Using i18n 0.6.11
Using json 1.8.1
Using …Run Code Online (Sandbox Code Playgroud) 我有使用rails控制台的问题,发送给我这个错误
/usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require': cannot load such file -- readline (LoadError)
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/2.1.0/irb/completion.rb:9:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/console.rb:3:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in `load_dependency'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:128:in `require_command!'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:59:in `console'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /usr/local/lib/ruby/gems/2.1.0/gems/railties-4.1.8/lib/rails/commands.rb:17:in `<top (required)>'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:247:in `block in require'
from /usr/local/lib/ruby/gems/2.1.0/gems/activesupport-4.1.8/lib/active_support/dependencies.rb:232:in …Run Code Online (Sandbox Code Playgroud) 我有一个设置命令,每次启动时都想执行rails console-
MyClass.some_method()
Run Code Online (Sandbox Code Playgroud)
每次启动时我都厌倦了重新输入rails c- 有没有办法在每次启动新控制台时自动运行它?
谢谢!
我一直在关注Rails应用程序的教程。本教程基于Rails 5,我正在使用Rails 5.1.2。一切都在本地运行良好,并毫无问题地推送至heroku。但是,当我通过运行在生产数据库上创建管理员用户时:
$ heroku run rails c
Run Code Online (Sandbox Code Playgroud)
它返回以下错误:
/app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:
require': cannot load such file -- rack/handler/c (LoadError) from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:in在/app/vendor/bundle/ruby/2.4.0/ gems / activesupport-5.1.3 / lib / active_support / dependencies.rb:258:inload_dependency' from /app/vendor/bundle/ruby/2.4.0/gems/activesupport-5.1.3/lib/active_support/dependencies.rb:292:inrequire'来自/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb :74:try_require' from /app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/handler.rb:16:in从/app/vendor/bundle/ruby/2.4.0/gems/rack-2.0.3/lib/rack/server.rb 中获取:301 :在server' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:68:inprint_boot_information中从/ app / vendor / bundle / ruby /2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:38:start' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:131:in在/app/vendor/bundle/ruby/2.4.0/gems/railties- 5.1.3 / lib / rails / commands / server / server_command.rb:126:tap' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/commands/server/server_command.rb:126:in从/app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/command.rb执行:27: 在run' from /app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor/invocation.rb:126:in来自/app/vendor/bundle/ruby/2.4.0/gems/thor-0.20.0/lib/thor.rb:387:indispatch' from /app/vendor/bundle/ruby/2.4.0/gems/railties-5.1.3/lib/rails/command/base.rb:63:in …
rails-console ×10
activerecord ×2
postgresql ×2
ruby ×2
amazon-ec2 ×1
deployment ×1
heroku ×1
irb ×1
model ×1
pry ×1
rake ×1