问题标签 [rails-console]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3382 浏览

ruby-on-rails - 清除rails控制台中的所有变量

任何人都可以告诉我使用什么命令来清除rails控制台中的所有变量吗?

例如

我需要一个命令,可以在不重新启动 rails 控制台本身的情况下将所有变量重置为 nil。

任何建议将不胜感激。

0 投票
2 回答
2176 浏览

ruby-on-rails - Ruby on Rails - 将 URL 映射到控制器、方法和参数

我知道 Rails 应用程序中的文件 routes.rb 将 URL 映射到控制器、方法和 params 哈希中的一组参数。这在某种程度上因“资源”、嵌套资源和非 RESTful 路由而变得复杂。

有没有办法在 Rails 控制台上运行命令来映射 URL 并准确确定哪个控制器、哪个方法、哪个 http 方法以及来自给定 URL 的参数哈希的确切值?

那么是否可以在rails控制台上使用参数哈希运行控制器方法并将控制器的输出发送到STDOUT?如果是这样,怎么做?

0 投票
1 回答
330 浏览

ruby-on-rails-3 - 使用 rails 控制台测试 Rails/Rack 应用程序

我对 Rails 堆栈的简单理解是它执行以下操作(通常)

  1. 输入是一个 HTTP 消息(GET、POST、PUT、DELETE、HEAD)、一个 URL、一些(可选)cookie、一个(可选)会话令牌,可能还有一些以 JSON 或 XML 格式打包的数据。
  2. 这个 HTTP 消息由 Rack 处理,它可以通过一组“中间件”函数运行它,这些函数从消息中添加或删除数据,并且可以使用这些数据从程序的数据存储中添加、更改或删除数据。
  3. Rack 输出的 HTTP 消息被发送到 Rails 路由器,后者将其映射到控制器、操作和参数散列,其中包含会话信息、cookie 和其他参数。数据被分派给适当的控制器。
  4. 控制器方法解析参数,并在算法上将其与数据库中的数据(通过模型)组合,可选地更改数据,然后将一组以 @ 开头的变量调度到视图模板。
  5. 视图模板获取数据并将其与视图模板合并以形成具有适当格式(例如 HTML、JS、JSON、XML 等)的视图,或者它告诉调用者(通过 HTTP 返回代码)重定向到另一个网址。

我想使用 Rails 控制台对我的 Rails Web 应用程序执行的操作是

  1. 使用 URL、会话 ID、cookie 和编码数据(JSON 或 XML)编写有效的 HTTP 消息。
  2. 将此数据注入 Rack 接口,并在将其发送到 Rails 路由器之前检查输出的内容。
  3. 然后我想将该数据发送到 Rails 路由器,看看在它进入控制器之前会出现什么。
  4. 然后我想将该数据发送到控制器,看看在发送到视图模板之前会出现什么。
  5. 然后我想获取该数据并通过视图模板运行它并在 STDOUT 上显示,或者让它自动打开 Web 浏览器并查看它的呈现。

是否有任何现有的 Rails 工具可以做到这一点?如果没有,谁能指出这些接口出现的 Rails 代码?

0 投票
1 回答
544 浏览

ruby-on-rails - 如何从 Rails 控制台将字符串保存到数据库

我正在尝试将字符串保存到数据库并从视图中输出。刚开始学习RoR,所以这里有点困惑......

这是我所做的:

  • 生成模型测试ID:字符串值:字符串

其次是

  • 耙分贝:迁移

然后我从 ./script/rails 控制台打开了 rails 控制台

我想在这里输入这个:

test.create!(:value => "Hello World")

但它返回“ArgumentError: wrong number of arguments” :(我怎样才能正确地做到这一点?另外,我怎样才能将它存储到一个变量中并在视图中输出?

谢谢!

0 投票
2 回答
1699 浏览

ruby-on-rails - 使用 JRuby 的 Rails 控制台问题:无提示符、无制表符补全、箭头键损坏等

我在 JRuby 下的 Rails 控制台遇到了各种问题,包括

  • 无提示符
  • Tab完成不工作(文字标签被插入)
  • 向上/向下箭头不浏览历史记录(^[[A^[[B分别插入)
  • 左/右箭头不移动光标(^[[D^[[C分别插入)
  • Home/End键不将光标移动到行的开头/结尾(分别代替1~4~插入);Ctrl+ a/ Ctrl+e虽然工作
  • Ctrl+c杀死控制台而不是杀死我正在输入的行
  • Ctrl+d在我点击之前没有任何效果Enter(然后执行我在Ctrl+dEnter我的 Unix shell 之间输入的任何内容)。

我从 rvm 安装了我的 JRuby 解释器,如下所示:

我的 Rails 项目是使用 Bundler(不是 rvm gemsets)管理的,所以我使用bundle exec rails c. 有趣的是,除了/键和+需要一个新的提示行之前,rawirbbundle exec irb上面的大多数问题都没有。HomeEndCtrlcEnter

我可以用准系统 Rails 复制这个问题Gemfile

我的外壳是zsh,在 Ubuntu 12.04 64 位上。$JAVA_HOME/usr/lib/jvm/java-7-openjdk-amd64,但是当我安装这个解释器时它可能仍然是 java-6,如果这很重要的话。

更新:一些修复

缺少提示字符显然是由Rails 控制台IRB.conf[:PROMPT_MODE]设置为引起的。:NULL对于常规irb,我的设置为:RVM(显然 rvm 在 中执行此操作~/.rvm/scripts/irb.rb;我通过注释掉脚本排除了 rvm 导致此问题的可能性)。提供一个:PROMPT_MODE值来~/.irbrc解决这个问题。我想也许一个类似的问题是通过更改and导致Ctrl+ c/ Ctrl+问题,但它们都设置为默认值。d:IGNORE_SIGINT:IGNORE_EOF

:USE_READLINE通过设置为 true,可以修复 Tab 补全和箭头键。

这是我目前~/.irbrc似乎可以解决上述问题的电流:

0 投票
2 回答
194 浏览

ruby-on-rails - 奇怪的行为 - irb 和 rails 控制台

对于命令require rails , irb首先给出true,然后总是给出false

rails 控制台总是给出错误的。

这是怎么回事?

请看下面的cmd-

0 投票
1 回答
852 浏览

ruby-on-rails - Postgresql 表值与 Ruby on Rails Active Record 查询结果不匹配

我在 Postgresql 中有一个名为monthly_trips 的表。有一行值 id = 3 & al = 107.415。我的问题是当我尝试访问 rails 中“al”列的值时。使用带有以下代码的 Rails 控制台,我得到 6154.426156397738 的结果。我不知道是什么产生了这个更大的数字(准确地说是 57.295779513 倍)。任何帮助将不胜感激!如果您需要更多信息,请与我们联系。

每月旅行.rb

psql 输出(选择 id,al frommonthly_trips where id = 3;)

psql 输出(\d 每月一次)

迁移文件

pg_locks 表

0 投票
1 回答
518 浏览

ruby-on-rails - 如何在 pry 中对 awesome_print 结果进行分页

我正在使用awesome_printgem 来显示输出pry以看起来很漂亮。由于 awesome_print使用换行符,长输出ap html.chapters.order("position ASC") 只显示输出的结尾部分,我如何对结果进行分页以使其看起来像它,通过管道传输lessmore

谢谢。

0 投票
3 回答
1241 浏览

ruby-on-rails - Rails 3.2.9 中的“rails 控制台”命令引发错误

我正在使用带有 ruby​​ 1.9.3 的 Rails 3.2.9(默认使用 RVM)。当我执行命令'rails console'/'rails c'时,从我的test_app的根目录中,显示以下错误。

谁能帮我解决这个问题?

0 投票
3 回答
4088 浏览

ruby-on-rails - Rails: find 和 find_by 返回奇怪 #在模型中,但不在 Rails 控制台中

我已经坚持了几个小时的奇怪问题:

我正在使用 Rails 3 编写一个简单的用户登录,其中用户使用他们的电子邮件和密码登录。在我的用户模型中,我试图通过他们的电子邮件找到正确的用户对象,然后继续查看他们是否输入了正确的密码。

当我尝试从 rails 控制台查找用户时

我得到了想要的结果——返回了正确的用户对象

但是当我将以下代码放入 model/user.rb 文件时,我得到了一个奇怪的结果

输出以下内容:

当我尝试使用这个用户变量时,它会出错并说变量或方法“用户”是未知的

这是日志文件的输出:

这是我尝试过的一些事情......

  1. 上面的mysql查询肯定有效。我已经将它复制到 mysql 中,它得到了正确的用户。

  2. 我试过 find(id) 也不起作用。返回类似的用户:0x10b7b82c8

总的来说,我不明白为什么控制台会给出与模型代码本身不同的结果。

有人知道为什么我会从 find_by 得到如此奇怪的结果吗?

非常感谢!

编辑:这是附加代码,因为 Frederick 提到不足以找到问题。

来自控制器/users_controller.rb

来自模型/user.rb