标签: rails-console

如何在 Rail 控制台中进行 vi 风格导航

如何在rails控制台中进行VI风格的导航?

在我的 .bash_profile 中我这样做set -o vi,然后在我的终端中我喜欢 vi 风格的导航。我可以dd删除一行、cmd+$跳到行尾等等。

我想在 Rails 控制台中得到同样的东西?

vi bash ruby-on-rails irb rails-console

2
推荐指数
1
解决办法
1223
查看次数

使用 load 命令在 Rails 控制台中调用脚本时传递参数

我知道如何使用 ARGV 数组访问命令参数,但我遇到了问题。我有一个无法独立运行的脚本,需要在 Rails 控制台中运行。有没有办法在调用文件时传递参数?

load '/tmp/test.rb'
Run Code Online (Sandbox Code Playgroud)

我尝试将其放在引号内,放在引号外,一时兴起尝试<但无济于事。

感谢您提供任何帮助!

ruby command ruby-on-rails command-line-arguments rails-console

2
推荐指数
1
解决办法
4809
查看次数

创建具有范围唯一性的迁移

我想创建一个迁移来生成一个如下所示的模型:

# Table name: cities
# 
#  country_code :text
#  created_at   :datetime         not null
#  id           :integer          not null, primary key
#  name         :string
#  updated_at   :datetime         not null
#

class City < ActiveRecord::Base
  validates :name, presence: true, uniqueness: {:scope => :country_code, 
    message: "A name and country already exists for this entry" }

end
Run Code Online (Sandbox Code Playgroud)

如何创建独立迁移来创建此模型?

我能够:name在整个桌子上制作独一无二的:

rails g migration CreateCitites name:string:uniq country_code:text timezone:text
Run Code Online (Sandbox Code Playgroud)

我在创建:name相对于:country_code.


例子:

名称:悉尼,国家代码:澳大利亚

名称:悉尼,国家代码:德国

应该允许

名称:悉尼,国家代码:澳大利亚

名称:悉尼,国家代码:澳大利亚

不应该被允许

migration activerecord ruby-on-rails rails-console

2
推荐指数
1
解决办法
1042
查看次数

如何编写 bash 脚本以在 rails 控制台中运行命令

我需要编写一个 bash 脚本来在我的 rails 控制台中运行命令,命令是: Station.create(......)

  #!/bin/bash

   rails console
Run Code Online (Sandbox Code Playgroud)

在这行之后,我没有任何想法。我试过了echo "Station.create(...),但没有帮助

bash shell ruby-on-rails rails-console

2
推荐指数
1
解决办法
2193
查看次数

查看Rails中的created_at是否已经过去24小时

我试图检查对话中的最后一条消息是否已经过去 24 小时,但我总是收到错误消息

message_tag= conversation.messages.incoming.last.created_at > 24.hours.ago
Run Code Online (Sandbox Code Playgroud)

即使我已将创建时间更改为 25.hours.agomessage.created_at=25.hours.ago

这可能是什么原因造成的?

ruby-on-rails rails-console

2
推荐指数
1
解决办法
1564
查看次数

Rails控制台给我一个"wirble"错误

rails-project git:creating-models ? rails console
Loading development environment (Rails 3.2.1)
Couldn't load Wirble: cannot load such file -- wirble
irb(main):001:0> 
Run Code Online (Sandbox Code Playgroud)

我用谷歌搜索,没有任何相关的东西出现..我不知道这是否有帮助

rails-project git:creating-models ? irb
>> puts $:
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/gems/1.9.1/gems/wirble-0.1.3/lib
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/site_ruby/1.9.1
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/site_ruby/1.9.1/x86_64-darwin11.2.0
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/site_ruby
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/vendor_ruby/1.9.1
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/vendor_ruby/1.9.1/x86_64-darwin11.2.0
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/vendor_ruby
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1
/usr/local/Cellar/ruby/1.9.3-p0/lib/ruby/1.9.1/x86_64-darwin11.2.0
Run Code Online (Sandbox Code Playgroud)

Ruby版本:

ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-darwin11.2.0]
Run Code Online (Sandbox Code Playgroud)

我正在使用OSX,而​​不是Ubuntu(在我看到的每个谷歌搜索中似乎都是这个问题的根源)

ruby ruby-on-rails rails-console ruby-on-rails-3

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

调用方法并从rails控制台启动调试而不编辑源代码?

有时当我在rails控制台中工作时,我发现我想在调试器中逐步执行特定方法(来自我的rails应用程序).在过去,我通过在方法的源代码中临时添加调试器语句,然后从控制台调用该方法来完成此操作.

有没有一种方法可以从控制台"进入"一个方法,而无需编辑其源代码?

这在共享开发服务器上会特别好用,因此我不需要使用vi引入随机调试器语句,并记得稍后删除它们.

我尝试了以下但不出意外它不起作用:

$ rails c --debugger
=> Debugger enabled
Loading development environment (Rails 3.2.13)
irb(main):001:0> def startdebug
irb(main):002:1>   debugger
irb(main):003:1>   MyModel.last.my_method
irb(main):004:1> end
=> nil
irb(main):005:0> startdebug
Run Code Online (Sandbox Code Playgroud)

它说

*** No sourcefile available for (irb)
Run Code Online (Sandbox Code Playgroud)

很快我终于通过irb代码而不是代码my_method.

ruby debugging ruby-on-rails irb rails-console

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

Rails控制台错误:加载〜/ .pryrc时出错:命令:未找到`continue`

当我在我当前的笔记本电脑上使用rails控制台时(在任何rails项目上),当控制台启动时出现以下错误.

Rails console error: Error loading ~/.pryrc: Command: `continue` not found
Run Code Online (Sandbox Code Playgroud)

控制台仍然正常加载和运行,但我似乎无法弄清楚错误的原因.

这是.pryrc的内容.

Pry.config.pager = false
Pry.config.color = true
Pry.commands.alias_command 'c', 'continue'
Pry.commands.alias_command 's', 'step'
Pry.commands.alias_command 'n', 'next'
Run Code Online (Sandbox Code Playgroud)

如果我删除第三行并运行rails控制台,错误我得到一个类似的错误,引用'step'代替.该错误不会影响我的故障排除能力,但我真的很想了解潜在的问题.

ruby rails-console ruby-on-rails-4 pry-rails

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

为什么User.first第一次花更多时间查询数据库?

当我打开现有应用程序的控制台并输入:

2.1.1 :001 > User.first
  User Load (17.6ms)  SELECT  "users".* FROM "users"   ORDER BY "users"."id" ASC LIMIT 1
=> #<User id: xxxx .... >
Run Code Online (Sandbox Code Playgroud)

下次输入查询:

2.1.1 :002 > User.first
  User Load (0.8ms)  SELECT  "users".* FROM "users"   ORDER BY "users"."id" ASC LIMIT 1
=> #<User id: xxxx .... >
Run Code Online (Sandbox Code Playgroud)

您可以看到rails查询数据库所用的时间之间的差异.是否可以在控制台中使用缓存.这在运行应用程序中的表现如何.它是否有更多的时间,甚至是缓存,它究竟是在做什么的.

ruby ruby-on-rails rails-console

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

辅助方法不会通过 rails 控制台中的 `reload!` 重新加载

我有一个这样的辅助方法:

module PostsHelper
  def foo
    "foo"
  end
end
Run Code Online (Sandbox Code Playgroud)

在 rails 控制台中,我检查了函数,然后将文本更改"foo""bar",然后reload!是控制台,但helpers.foo仍然没有返回"bar"

也许 Helper 对象已经像这篇文章一样在控制台中创建了,我不确定。 Rails 控制台:重新加载!不反映模型文件的变化?可能的原因是什么?

只有我想知道如何在 rails 控制台中使用 helper 方法。你能告诉我怎么做吗?

ruby-on-rails helper rails-console

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