小编tir*_*adc的帖子

数组的不变性更新助手中的动态键

https://facebook.github.io/react/docs/update.html

我有一个更新函数,它接收索引以及事件,以便更改数组中该特定项的值.

index在这种情况下,如何评估而不是将其视为集合键?它甚至可能吗?

updateValue: function(index, e) {
  var items = React.addons.update(this.state.items, {
   index: {
     amount: {$set: e.target.value}
   }
  });
  this.setState({
    items: items
  })
}
Run Code Online (Sandbox Code Playgroud)

现在这显然不起作用,因为this.state.items['index']['amount']当我想修改this.state.items[1]['amount']索引为1 时,它正在尝试更新未设置的内容.

javascript ecmascript-6 reactjs

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

如何计算对象的实例?

如果我有一个Javascript对象定义为:

function MyObj(){};

MyObj.prototype.showAlert = function(){
   alert("This is an alert");
   return;
};
Run Code Online (Sandbox Code Playgroud)

现在用户可以将其称为:

var a = new MyObj();
a.showAlert();
Run Code Online (Sandbox Code Playgroud)

到目前为止一切都很好,也可以在同一个代码中运行另一个这样的实例:

var b = new MyObj();
b.showAlert();
Run Code Online (Sandbox Code Playgroud)

现在我想知道,我怎么能保持MyObj实例的数量?有一些内置功能吗?

我想到的一种方法是在MyObj初始化时增加一个全局变量,这将是跟踪这个计数器的唯一方法,但有什么比这个想法更好的吗?

编辑:

在这里看一下这个建议:

在此输入图像描述

我的意思是我怎么能让它回到2而不是3

javascript

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

searchkick索引相关的模型字段

我有一个rails应用程序,我正在从Sphinx切换到ElasticSearch并使用gem searchkick.

我有一个模型教师和模型标签(通过宝石),教师可以有多个标签关联.在Teacher模型中,我已经定义了这样的索引:

def search_data
    {
      name: name,
      intro: intro,
      bio: bio,
      tag_name: tags.name
    }
end
Run Code Online (Sandbox Code Playgroud)

Name,intro和bio是教师属性,但我想索引与教师关联的标签的名称.我怎样才能做到这一点?

它现在的方式,它索引对象的名称(关系),我如何索引标签对象内的属性名称?

orm ruby-on-rails ruby-on-rails-3 elasticsearch searchkick

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

如何使用Sidekiq测试Devise Async?

提前致谢!Sidekiq工作正常,但我无法用Devise Async测试它,或者我应该说我不能测试后者?

根据Sidekiq的文档,当测试模式设置为fake!时,给予worker的任何作业都会被推送到名为jobs同一个worker 的数组中.因此测试这个数组的增加是微不足道的.

但是,对于Devise Async来说,虽然它的后端包括,但它并不是那么微不足道Sidekiq::Worker.这是我尝试测试的一小部分内容:

  • Devise::Async::Backend::Sidekiq.jobs
  • Devise::Mailer.deliveries
  • ActionMailer::Base.deliveries
  • Devise::Async::Backend::Worker.jobs

这些测试对象都没有指出尺寸的增加.由于Devise将其电子邮件作为模型回调发送,我尝试在模型和控制器规范中进行测试.使用Factory Girl和Database Cleaner,我也尝试了两种模式:事务和截断.毋庸置疑,我也尝试过两种Sidekiq模式:假的!和内联!

我错过了什么?

devise rspec-rails sidekiq ruby-on-rails-4 devise-async

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

rails/minitest不为选择的测试加载灯具

我的测试是使用灯具编写的,我正在慢慢地重构它们以使用工厂.

一旦我重构了一个不使用灯具的测试类,我就不想加载那个类的灯具了.有没有办法做到这一点?或者我是坚持要么加载他们的一切或什么都没有?

对于上下文,以下是我的灯具现在如何设置:

class ActiveSupport::TestCase
   Rake::Task["db:fixtures:load"].execute
   ...
end
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails fixtures minitest

8
推荐指数
2
解决办法
803
查看次数

ruby-build:未找到定义:2.2.1

我想安装新版本的ruby rbenv install 2.2.1,但是我收到了错误

ruby-build: definition not found: 2.2.1
 The following versions contain 2.2.1 in the name:
  rbx-2.2.1
  rbx-2.2.10
Run Code Online (Sandbox Code Playgroud)

能告诉我如何安装2.2.1版本吗?

提前致谢!

ruby-on-rails rbenv

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

rails对特定控制器和操作的ActiveRecord验证

是否可以在给定的控制器和操作上运行ActiveRecord验证.

例如,我有user_controllersignup_controller

我只需要在signup_controller #create action上运行密码必需的验证

validation activerecord ruby-on-rails

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

针对特定作者的git format-patch X..Y

我想知道你是否可以为一个范围生成补丁,但只限制来自特定作者的提交,就像你一样git log --author='bob'.

git patch

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

limit:schema.rb布尔字段中的1个差异

我最近开始注意到在部署到生产之后,我在db/schema.rb那里看到了这个git diff :

-    t.boolean  "published",          limit: 1
+    t.boolean  "published"
Run Code Online (Sandbox Code Playgroud)

-    t.boolean  "visible",            limit: 1,                    default: false
+    t.boolean  "visible",                                         default: false
Run Code Online (Sandbox Code Playgroud)

鉴于Rails版本在两种环境中都是相同的,这是否仅仅是由MySQL版本之间的差异造成的,分别是5.5.43的生产和5.6.23的开发?

mysql git ruby-on-rails rails-migrations

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