标签: ruby

Ruby - 将块传递给方法

我正在尝试使用Highline gem进行Ruby密码输入,因为我有两次用户输入密码,我想消除我传入的块上的重复.例如,我的简单版本现在做的是:

new_pass = ask("Enter your new password: ") { |prompt| prompt.echo = false }
verify_pass = ask("Enter again to verify: ") { |prompt| prompt.echo = false }
Run Code Online (Sandbox Code Playgroud)

而我想改变它是这样的:

foo = Proc.new { |prompt| prompt.echo = false }
new_pass = ask("Enter your new password: ") foo
verify_pass = ask("Enter again to verify: ") foo
Run Code Online (Sandbox Code Playgroud)

遗憾的是,这不起作用.这样做的正确方法是什么?

ruby highline

41
推荐指数
2
解决办法
4万
查看次数

如何强制ruby显示完整的堆栈跟踪?

我刚收到此错误消息:

...
from c:/ruby/lib/ruby/gems/1.8/gems/...
 ... 10 levels...
from c:/ruby/lib/ruby/gems/1.8/gems/...
...
Run Code Online (Sandbox Code Playgroud)

并且bug(当然)隐藏在某处... 10 levels....

如何强制ruby显示完整的堆栈跟踪?

ruby stack-trace

41
推荐指数
1
解决办法
4万
查看次数

Ruby中的class()与type()

Ruby中的类和类型方法有什么区别?我注意到这种类型可以找到某些类的类型而不是其他类.

ruby syntax

41
推荐指数
2
解决办法
5万
查看次数

Rails:HasManyThroughAssociationNotFoundError

我有一个has_many through关联工作的问题.

我一直得到这个例外:

Article.find(1).warehouses.build
ActiveRecord::HasManyThroughAssociationNotFoundError: Could not find the association :entries in model Article
Run Code Online (Sandbox Code Playgroud)

这些是涉及的模型:

class Article < ActiveRecord::Base
  has_many :warehouses, :through => :entries
end

class Warehouse < ActiveRecord::Base
  has_many :articles, :through => :entries
end

class Entry < ActiveRecord::Base
  belongs_to :article
  belongs_to :warehouse
end
Run Code Online (Sandbox Code Playgroud)

这是我的架构:

create_table "articles", :force => true do |t|
  t.string   "article_nr"
  t.string   "name"
  t.integer  "amount"
  t.string   "warehouse_nr"
  t.datetime "created_at"
  t.datetime "updated_at"
  t.integer  "unit"
end

create_table "entries", :force => true do |t|
  t.integer "warehouse_id"
  t.integer "article_id" …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails has-many-through

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

Scala是否比其他JVM语言更好地扩展?

这是目前我所知道的唯一方式.理解它Scala使用Java虚拟机.我以为Jruby也是.Twitter将其中间件转换为Scala.他们可以做同样的事情并使用Jruby吗?

他们是否可以从Jruby开始,而不是因为他们的缩放问题导致他们首先从Ruby迁移到Scala?我不明白Jruby是什么?我假设因为Jruby可以使用Java,它会缩放到Ruby不会的地方.

在这种情况下,这一切都归结为静态与动态类型吗?

ruby twitter scala scalability jruby

41
推荐指数
4
解决办法
7330
查看次数

加载常量时自动加载常量时检测到循环依赖性

首先:我用谷歌搜索并在这里使用搜索,并找到相同错误的答案,但在不同的设置.也许我打破了不同;)

错误:

RuntimeError at /admin/users
Circular dependency detected while autoloading constant Admin::UsersController
Run Code Online (Sandbox Code Playgroud)

结构是:

App => controllers => admin => users_controller.rb
Run Code Online (Sandbox Code Playgroud)

路线:

namespace :admin do
  resources :stuff
  resources :users
end
Run Code Online (Sandbox Code Playgroud)

用户控制器:

class UsersController < Admin::BaseController
  def new
    #code
  end

  def create
    #code
  end

  def index
    #code
  end

  private

  def user_params
   #code
  end
end
Run Code Online (Sandbox Code Playgroud)

管理员控制器

class Admin::BaseController < ApplicationController
  layout 'admin'
  before_filter :require_login
end
Run Code Online (Sandbox Code Playgroud)

使用:Rails 4.1.4,Ruby 2.1.2我在这里做错了什么?

谢谢你的帮助!

编辑:

development.rb

Rails.application.configure do
 config.cache_classes = false
 config.eager_load = false
 config.consider_all_requests_local       = true
 config.action_controller.perform_caching …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails ruby-on-rails-4

41
推荐指数
1
解决办法
4万
查看次数

Array.include?多个值

[2, 6, 13, 99, 27].include?(2)适用于检查数组是否包含一个值.但是,如果我想检查数组是否包含多个值列表中的任何一个,该怎么办?有没有比做更短的方式Array.include?(a) or Array.include?(b) or Array.include?(c) ...

ruby

41
推荐指数
4
解决办法
3万
查看次数

为什么respond_with被从rails 4.2中移除到它自己的gem中?

rails 4.2中, respond_with已从核心移出到响应者gem中.

Beta发行说明.

respond_with has moved out and into its own proper home with the responders gem.

有人可以解释一下原因吗?什么使响应者宝石成为适当的家?它留在Rails宝石有什么问题?

ruby ruby-on-rails

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

Vagrant - 如何使主机平台特定的配置步骤

我们有一个多元化的开发团队,一个在Windows上,另一个在Ubuntu上,另一个在OSX上.作为Windows男孩,我设置了流浪汉设置脚本的第一个版本,其工作非常棒;)

但是,在Ubuntu主机上运行它时,第一次进入调用bash脚本的供应步骤时,由于权限而失败.

在Windows中,这没有关系的桑巴份额自动拥有足够的权限来运行bash脚本(驻留在项目层次结构中,因此存在于虚拟机上的/游民的份额),但与Ubuntu的我需要设置在我调用之前,在配置脚本中对此文件的权限.

这不是问题,说实话,我即使有额外的"文件模式"怀疑加强它仍然会在Windows下很好地工作,但是,有没有流浪文件标记某一供应步骤为"仅Windows","办法Linux Only'还是'Mac Only'?

即在pseduo代码中,类似于.

.
.
if (host == windows) then
  config.vm.provision : shell, : inline => "/vagrant/provisioning/only_run_this_on_windows.sh"
else if (host == linux) then
  config.vm.provision : shell, : inline => "/vagrant/provisioning/only_run_this_on_linux.sh"
else if (host == osx) then
  config.vm.provision : shell, : inline => "/vagrant/provisioning/only_run_this_on_osx.sh"
end if
.
.
Run Code Online (Sandbox Code Playgroud)

提前致谢.

ruby vagrant

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

在Rails中添加可以为空的外键

引用Rails 4.2 add_foreign_key支持:

    # add a foreign key to `articles.author_id` referencing `authors.id`
    add_foreign_key :articles, :authors
Run Code Online (Sandbox Code Playgroud)

如何创建一个可以为空的外键约束,允许这种情况,哪里articles.author_id可以有时为null?

ruby ruby-on-rails ruby-on-rails-4 rails-activerecord ruby-on-rails-4.2

41
推荐指数
3
解决办法
2万
查看次数