标签: rails-console

启动irb或脚本/控制台时不执行〜/ .irbrc

这是我尝试过的:

1. gem install awesome_print
2. echo "require 'ap'" >> ~/.irbrc
3. chmod u+x ~/.irbrc
4. script/console
5. ap { :test => 'value' }
Run Code Online (Sandbox Code Playgroud)

结果:

NameError: undefined local variable or method `ap' for #

ruby bash ruby-on-rails irb rails-console

7
推荐指数
4
解决办法
3020
查看次数

在Relationship模型中添加依赖:destroy的测试(第11章,练习1 Rails教程,第2版)

很确定这些测试工作正常.通过删除has_many:relationships上的dependent :: destroy选项以及user.rb中的has_many:reverse_relationships来解决它们.

想要分享我所做的事情以防其他人通过Michael Hartl的Rails教程第2版,第11章练习.

这个练习产生了一些问题(见本文的底部).如果有人能提供帮助,那就太好了.

第11章,练习1:

按照清单10.15中的示例,在关系模型(清单11.4和清单11.16)中添加依赖关系:destroy的测试.

这是我的测试: spec/models/user_spec.rb

require 'spec_helper'

describe User do

  before do
  @user = User.new(name: "Example User", email: "user@example.com", 
                   password: "foobar", password_confirmation: "foobar")
  end

  subject { @user }

  [...code omitted...]

  describe "relationship associations" do
    let(:other_user) { FactoryGirl.create(:user) }
    before do
      @user.save
      @user.follow!(other_user)
      other_user.follow!(@user)
    end

    it "should destroy associated relationships" do
      relationships = @user.relationships
      @user.destroy
      relationships.should be_empty
    end

    it "should destroy associated reverse relationships" do
      reverse_relationships = @user.reverse_relationships
      @user.destroy
      reverse_relationships.should be_empty
    end
  end
Run Code Online (Sandbox Code Playgroud)

这个练习产生了几个问题:

问题1: …

rails-console ruby-on-rails-3 railstutorial.org dependent-destroy

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

Rails控制台中是否有一种方法可以打印数据库内容表?

我正在寻找一种干净简单的方法在Rails控制台中打印包含2列的5行数据库的内容.

有任何想法吗?我用Google搜索,但没有找到太多.

ruby ruby-on-rails rails-console

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

Rails控制台(END)如何通过它?

在Rails控制台中工作时,我将一个非常长的哈希粘贴到控制台中,当我滚动它的底部时,它有令牌(END),但是我发现通过它的唯一方法是使用CTRL退出控制台+ Z.这违背了我使用控制台测试一些代码的目的.有没有其他方法可以通过该(END)令牌?

ruby-on-rails rails-console

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

如何在Rails控制台中运行ActiveJob进行调试?

我目前有一个我创建的ActiveJob,并使用Sidekiq对其进行排队.我想调试这个工作,但是为了让我看到我编入其中的任何消息,我必须检查我的日志文件.我觉得能够puts在Rails控制台中查看我的工作信息会更方便.当我perform_later在rails控制台中运行该方法时,它只是将作业排队,我从未在控制台中看到这些消息.有没有办法让它在控制台中看到它们?

ruby-on-rails rails-console sidekiq rails-activejob

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

对象不支持#inspect

在 ruby​​ 控制台中运行简单任务时遇到问题。如果我跑

user = User.find(10)
Run Code Online (Sandbox Code Playgroud)
User Load (0.6ms)  SELECT "users".* FROM "users" WHERE "users"."id" = $1 LIMIT $2  [["id", "10"], ["LIMIT", 1]]
(Object doesn't support #inspect)
Run Code Online (Sandbox Code Playgroud)

我收到“对象不支持#inspect”错误。我的同事有完全相同的分支机构,没有问题。在其他分支上我也没有这个问题。肯定有一个结果,像这样运行就可以了。

user.first_name
=> "Tom"
Run Code Online (Sandbox Code Playgroud)

我什至删除了分支,重新下载,但仍然遇到同样的问题。已删除 gemfile,捆绑...尝试了我所知道的一切。我什至打开和关闭了笔记本电脑。

ruby ruby-on-rails rails-console

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

在Rails控制台中轻松抑制SQL输出的方法?

我经常需要使用Rails控制台rails c.然后我运行一些循环遍历模型记录的语句.我需要输出信息,但所有的SQL代码都会被遍布.喜欢:

Students.all.each {|s| puts s.inspect unless s.attendance};nil
Run Code Online (Sandbox Code Playgroud)

我把它nil放在最后,所以我不会得到所有学生的丑陋.这是输出:

  Student Load (4.3ms)  SELECT "students".* FROM "students"
  Attendance Load (3.6ms)  SELECT "attendances".* FROM "attendances" WHERE "attendances"."id" = 2694 LIMIT 1
  Attendance Load (2.7ms)  SELECT "attendances".* FROM "attendances" WHERE "attendances"."id" = 2695 LIMIT 1
  Attendance Load (4.9ms)  SELECT "attendances".* FROM "attendances" WHERE "attendances"."id" = 2689 LIMIT 1
#<Student id: 3, attendance_id: 2689, teacher_id: 6, began_at: "2013-05-21 19:16:37", finished_at: "2013-05-21 20:34:33", created_at: "2013-05-21 19:16:37", updated_at: "2013-05-21 20:34:33">
  Attendance Load …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails irb rails-console ruby-on-rails-3 ruby-on-rails-4

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

来自控制台的 Rails 缓存不返回零

在开发或生产中,我无法从控制台看到缓存中的任何内容。

对于开发,我打开了缓存并将其设置为内存存储,在生产中我使用 Heroku 上的 dalli gem 和 Memcachier。

我尝试的每个键都归零。

但是,在开发过程中,如果我在binding.pry之前的某个地方放入a Rails.cache.fetch,我可以在Rails.cache.read那里执行 a并看到返回的内容,如果是这样,则执行不会进入fetch's 块。

在控制台中,如果我尝试Rails.cache.read使用刚刚在pry断点控制台中返回缓存结果的相同键,我将一无所获。好像控制台有一个单独的缓存,仿佛从控制台我Rails.cache.write("whatever", "blah")Rails.cache.read("whatever")我得到的回报“嗒嗒”,符合市场预期。

有没有办法从控制台试验正在运行的服务器的缓存?

caching ruby-on-rails rails-console

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

无法在终端中运行 rails c,因为“Pry 无法使用 `Readline` 获取用户输入。”

我似乎无法在终端中运行 rails c。它不断给我这个错误

    Loading development environment (Rails 4.2.0.beta2)
[1] pry(main)> Error: Input/output error - /dev/null
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:198:in `readline'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:198:in `block in input_readline'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/input_lock.rb:115:in `call'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/input_lock.rb:115:in `interruptible_region'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:197:in `input_readline'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:183:in `block in read_line'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:129:in `handle_read_errors'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:170:in `read_line'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:98:in `read'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:68:in `block in repl'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:67:in `loop'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:67:in `repl'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:38:in `block in start'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/input_lock.rb:61:in `call'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/input_lock.rb:61:in `__with_ownership'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/input_lock.rb:79:in `with_ownership'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:38:in `start'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/repl.rb:15:in `start'
/Users/Bito/.gem/ruby/2.0.0/gems/pry-0.10.1/lib/pry/pry_class.rb:169:in `start'
/Users/Bito/.gem/ruby/2.0.0/gems/railties-4.2.0.beta2/lib/rails/commands/console.rb:110:in `start'
/Users/Bito/.gem/ruby/2.0.0/gems/railties-4.2.0.beta2/lib/rails/commands/console.rb:9:in `start'
/Users/Bito/.gem/ruby/2.0.0/gems/railties-4.2.0.beta2/lib/rails/commands/commands_tasks.rb:68:in `console'
/Users/Bito/.gem/ruby/2.0.0/gems/railties-4.2.0.beta2/lib/rails/commands/commands_tasks.rb:39:in `run_command!'
/Users/Bito/.gem/ruby/2.0.0/gems/railties-4.2.0.beta2/lib/rails/commands.rb:17:in `<top (required)>'
/Users/Bito/.gem/ruby/2.0.0/gems/activesupport-4.2.0.beta2/lib/active_support/dependencies.rb:248:in `require'
/Users/Bito/.gem/ruby/2.0.0/gems/activesupport-4.2.0.beta2/lib/active_support/dependencies.rb:248:in `block in require'
/Users/Bito/.gem/ruby/2.0.0/gems/activesupport-4.2.0.beta2/lib/active_support/dependencies.rb:233:in `load_dependency' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails readline rails-console pry

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

为什么我的参数哈希为零?

在我的 Rails 控制器中,在窥探会话中,我的params哈希值是nil. request.params具有预期的哈希值。

\n\n

如果我注释掉该params = \xe2\x80\xa6行,params则恢复正常。

\n\n
class UsersController < Clearance::UsersController\n  skip_before_filter :verify_authenticity_token\n\n  def update\n    binding.pry\n    params = params.require(:user).allow(:foo)\n  end\nend\n
Run Code Online (Sandbox Code Playgroud)\n\n

可能是什么原因造成的?

\n

ruby-on-rails rails-console pry strong-parameters

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