我一直使用'y'方法在Rails控制台中清理一下结果。但是,它似乎不再起作用。
我可以找到结果,并且可以查看结果,但不是干净的。这是我的rails控制台:
Loading development environment (Rails 3.2.6)
1.9.3-p286 :001 > y Trip.all
Trip Load (0.1ms) SELECT "trips".* FROM "trips"
NoMethodError: undefined method `y' for main:Object
from (irb):1
from /home/timen/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands/console.rb:47:in `start'
from /home/timen/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands/console.rb:8:in `start'
from /home/timen/.rvm/gems/ruby-1.9.3-p286/gems/railties-3.2.6/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
1.9.3-p286 :002 >
Run Code Online (Sandbox Code Playgroud) 我有一个现有的远程 mysql 数据库,我正在尝试从我的 rails 应用程序访问它,我的 database.yml 开发中有这个:
development:
adapter: mysql2
encoding: utf8
database: mydb
username: myusername
password: !@#$%@!
host: IP for my DB
port: 3306
pool: 5
socket: /tmp/mysql.sock
timeout: 5000
Run Code Online (Sandbox Code Playgroud)
当我在 Rails 控制台中运行以下命令时
ActiveRecord::Base.connection.tables
它列出了所有可用的表,但是当我尝试访问模型时,它给了我以下错误:
City
NameError: uninitialized constant City from (irb):12
from /home/shreyas/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.11/lib/rails/commands/console.rb:47:in `start'
from /home/shreyas/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.11/lib/rails/commands/console.rb:8:in `start'
from /home/shreyas/.rvm/gems/ruby-1.9.3-p194/gems/railties-3.2.11/lib/rails/commands.rb:41:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
Run Code Online (Sandbox Code Playgroud)
任何建议我做错了什么?我想访问我的应用程序中的远程数据库,到目前为止我还没有创建任何模型。我需要创建所有模型吗?我可以在我的 schema.rb 文件中看到完整的数据库结构。
ruby-on-rails rails-console ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2
我有一个应用程序,我在本地运行它.我可以在其中创建另一个版本的应用程序rails console,但是我希望为运行的应用程序提供一个命令行界面,我可以在Web界面和控制台中进行交互.
理想情况下,我启动rails s然后可以在该环境中使用变量.
我在控制台中发出一条SQL语句:
> sql = "SELECT flavour from Libation where id=8675309"
> result = ActiveRecord::Base.connection.execute(sql)
=> true
Run Code Online (Sandbox Code Playgroud)
我正在使用oracle增强适配器,并想知道为什么我只能得到真实.我期待着像"芒果"这样的东西.我尝试过很多东西但没有运气.
我得到了我想要的东西 - 拥有并属于许多协会,使用Rails指南中的简单指令.在控制台中它一切正常,但我有点坚持以下.
假设我有两个模型Article和Category,它们在模型中都有指令has_and_belongs_to_many,并且对应于数据库中的articles_categories表.在rails控制台中,我可以看到关联使用如下语句:
%> @x = Article.find(1)
%> @x.categories
Run Code Online (Sandbox Code Playgroud)
这样我在@x中存储了一组类别.精彩.但我真的找不到一种方法可以通过控制台添加一个新类别.现在,我使用SQL将值插入到连接表中.我希望有一种更聪明的Railsy方式来做这样的事情
%> @x.article.categories.category_id = 1 # id of category
%> @x.article.categories.article_id = 1 # id of article
%> @x.save # and written to the database
Run Code Online (Sandbox Code Playgroud)
我特意在rails控制台中寻找这样做的方法 - 所以我实际上感觉到发生了什么,而不是代码片段,但是我没有得到.我正在使用Rails 4.1.6
我是Ruby/Rails的新手.我目前正在使用Rake和seeds.rb文件了解Rails控制台和数据库.
我应该:
老实说,我不知道如何开始这方面的工作.我应该使用rails控制台或者直接从seeds.rb文件添加帖子?任何指导将不胜感激.
该rails宝石具有在其他几个宝石的依赖.哪个gem提供Rails控制台?
我的项目不是Web服务器.我正在使用ActiveRecord和ActiveSupport.我也想拥有rails控制台.如何在不生成整个rails应用程序的情况下执行此操作(和/或,最简单的方法是什么?)
我在生产中无法访问rails控制台.
我曾经Capistrano将应用程序部署到VPS
如果我cd deploy@myapp:~/myapp/current$并在bundle exec rails c那里运行,我总是得到用于创建新rails项目的选项列表,比如rails new
我也试着bundle exec rails console --production和rails console等等都具有相同的结果.
问题是我必须能够访问控制台,因为我必须创建一个管理员用户 active admin
可能值得补充一点,我在Ubuntu 16上使用Passenger/Capistrano和Nginx
有谁知道这里发生了什么?难道我做错了什么?
*编辑
跑完后RAILS_ENV=production bundle exec rails c我收到这条消息
Looks like your app's ./bin/rails is a stub that was generated by Bundler.
In Rails 4, your app's bin/ directory contains executables that are versioned
like any other source code, rather than stubs that are generated on demand.
Here's how to upgrade: …Run Code Online (Sandbox Code Playgroud) 当我在开发模式下在 Rails 5.0 应用程序页面上遇到错误时,我收到一个错误页面,web-console页面底部有 Rails,如下面的屏幕截图所示。控制台对于运行发生错误的控制器的方法似乎非常有用。
是否可以在所有页面上启用它,以便我可以访问它而不会出现错误页面?