小编Sar*_*wan的帖子

在ruby中合并一些复杂的哈希值

我想将以下哈希合并在一起.

 h1 = {"201201" => {:received => 2},   "201202" => {:received => 4 }}
 h2 = {"201201" => {:closed => 1},  "201202" => {:closed => 1 }}
Run Code Online (Sandbox Code Playgroud)

特别是,我的预期结果是:

h1 = {"201201" => {:received => 2, :closed => 1},  "201202" => {:received => 4, :closed => 1 }}
Run Code Online (Sandbox Code Playgroud)

我尝试过各种方式:

h = h1.merge(h2){|key, first, second| {first , second} }
Run Code Online (Sandbox Code Playgroud)

不幸的是,似乎对我来说都没有好处.任何建议都会非常感激.

ruby hash hash-of-hashes

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

需要解释"git push"命令的工作原理

我试图将我的源代码部署到Github上.然后,我首先将github源添加到远程源,如下所示:

$ git remote add origin git@github.com:user_name/foo_bar.git*
Run Code Online (Sandbox Code Playgroud)

然后,我尝试运行"git push"命令将我的源代码上传到我的远程github帐户,如下所示.

$ git push

Enter passphrase for key '/c/Users/mylaptop/.ssh/id_rsa':
No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly
error: failed to push some refs to 'git@github.com:user_name/foo_bar.git'
Run Code Online (Sandbox Code Playgroud)

正如我从railstutorial.org上学到的,我知道如果我第一次使用"git push",它将返回一个错误,期望我指定"origin master"参数.但是对于下一次和后来的时间,我只能启动"git push",它会优雅地为我工作.这是什么原因?因为我认为默认情况下命令总是指分支'master'.

任何明确的解释都会非常感激.

git github

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

rails中嵌入的ruby语法"<%= ..%>"

我对下面关于ERB模板的想法是否正确?任何建议都会非常感激.

嵌入式ruby语法是否具有等号"<%=%>",旨在呈现某些输出?而没有等号"<%%>"的那个没有.

ruby-on-rails erb

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

has_many通过关联未初始化的常量错误

我有一个关于Rails中活动记录关联的问题.我正在开发三个活动记录模型:Team,Teamuser,用户,测试"has_many through"关联.基本上,我只想调用team.users和user.teams.

这是我的模型定义

  team.rb
  #######
  class Team < ActiveRecord::Base

    has_many :teamusers, :foreign_key => :team_id
    has_many :users, :through => :teamusers

  end
Run Code Online (Sandbox Code Playgroud)

  teamuser.rb
  ###########
  class Teamuser < ActiveRecord::Base

    belongs_to :teams  
    belongs_to :users   

  end
Run Code Online (Sandbox Code Playgroud)

然后

  user.rb
  ########
  class User < ActiveRecord::Base

    has_many :teamusers, :foreign_key => :user_id
    has_many :teams, :through => :teamusers

  end
Run Code Online (Sandbox Code Playgroud)

每次我试试这个

team.users

它返回一个错误,说"未初始化的常量Team :: Users".

我怎么可能错了?任何建议将非常感谢.

activerecord ruby-on-rails

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

转到rails中的特定数据库版本

如何从rails中的空数据库转到特定数据库版本?

在我的情况下,我最近重置了整个数据库,因此所有表都已被删除.

我的迁移文件如下:

20111127152636_create_users.rb
20120110100458_create_cars.rb
20120131003026_add_birth_date_to_users.rb
Run Code Online (Sandbox Code Playgroud)

我有什么命令可以打电话给我第二个最新版本,即20120110100458?

我试过"rake db:migrate:up version = 20120110100458".不幸的是,它没有得到我预期的结果; 根本没有创建表格.

migration ruby-on-rails-3

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

它是做什么的"捆绑exec rake db:migrate"?

从我的研究中,bundle exec负责在bundle的上下文中执行命令.

无论如何,我还不太了解它与命令rake db:migrate比较的不同之处bundle exec rake db:migrate.

例如在我的情况下,我执行了第一个命令,我得到的是以下错误:

$ rake db:migrate
(in c:/rails/rails_projects/soccerweb)
rake aborted!
uninitialized constant Rake::DSL
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2482:in `const_missing'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:8:in `<clas
s:TaskLib>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:6:in `<modu
le:Rake>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/tasklib.rb:3:in `<top
(required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb:4:in `requ
ire'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/rake-0.9.2.2/lib/rake/testtask.rb:4:in `<top
 (required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/testing.r
ake:2:in `require'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/testing.r
ake:2:in `<top (required)>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/railtie.r
b:12:in `load'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/test_unit/railtie.r
b:12:in `block in <class:TestUnitRailtie>'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
call'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
block in load_tasks'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/railtie.rb:183:in `
load_tasks'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/engine.rb:396:in `b
lock in load_tasks'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application/railtie
s.rb:8:in `each'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/application/railtie
s.rb:8:in `all'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.1.1/lib/rails/engine.rb:396:in …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails bundler

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