小编Rim*_*ian的帖子

如何将第一个Cucumber测试添加到Rails应用程序

忏悔:我从未为Rails编写过单一测试.

我已经安装了宝石黄瓜,rspec,水豚,工厂女孩.运行Rails 3.1.

我不确定,嗯,在哪里创建一个新的测试文件或者命名它.

谢谢你的耐心.

rspec ruby-on-rails cucumber capybara rspec-rails

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

2 activeadmin的命名空间

我正在尝试在过去4个小时内安装带有两个名称空间的activeadmin,但我没有运气.

我想要两个名称空间."admin"和"admin_unit".

我会假设我有app/admin和app/admin_unit目录.

对于admin命名空间,我想使用默认的devise身份验证,对于"admin_unit"命名空间,我有一个我需要使用的current_user方法.

我已经尝试使用命名空间包装active_admin配置中的所有配置,并且我尝试手动创建文件等,但每次我遇到一些问题.

Activeadmin在过去的一年里发生了很大变化,我很害怕我见过的一半指令已经过时了.而且没有一个是完整的.文档仅部分位于命名空间上.

有没有人有从开始到结束安装这两个名称空间的一步一步的说明?我非常感谢你的帮助!

编辑

当我去启动服务器(或者在这种情况下即时尝试rake路由)时,我收到此错误:

 Expected /app/active_admin/admin/dashboard.rb to define Admin::Dashboard (LoadError)
Run Code Online (Sandbox Code Playgroud)

dashboard.rb中有这个:

ActiveAdmin.register_page "My Page", :namespace => :admin do
  content do
    para "Hello World"
  end
end
Run Code Online (Sandbox Code Playgroud)

我也试过没有命名空间:

ActiveAdmin.register_page "My Page" do
  content do
    para "Hello World"
  end
end
Run Code Online (Sandbox Code Playgroud)

仅供参考我添加了一个"active_admin"目录,并将两个命名空间目录放在那里.我将两者都添加到加载路径中(感谢您).

此错误是否与新的仪表板页面有关?我将研究下一步的工作方式.

多谢你们!感谢你的工作Gregg,我现在已经在数十个应用程序上使用了AA并且喜欢它!

编辑修复

好的,在上一期中,我发现从我创建的"active_admin"目录中取出两个activeadmin命名空间目录修复了问题.不确定哪些不起作用......但是哦,我已经在这个问题上花了足够的周期,并准备继续前进.

希望能帮到别人..

ruby namespaces ruby-on-rails activeadmin

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

使用Crossfilter,如何返回特定类型的所有id值的数组

原谅我,我不确定我是否正确解决了这个问题。

我有一些具有类型和ID的数据(成千上万个元素):

const data = [
  { type: 'foo', id: 1 },
  { type: 'foo', id: 3 },
  { type: 'foo', id: 5 },
  { type: 'baz', id: 8 },
  { type: 'baz', id: 10 },
  { type: 'bar', id: 11 },
  { type: 'bar', id: 13 },
  { type: 'bar', id: 17 },
  ...
];
Run Code Online (Sandbox Code Playgroud)

使用crossfilter,我想按类型过滤并返回其所有id的数组。

例如:所有“ bar”类型都应返回 [10, 11, 13, 17]

我的尝试是减少组。但是我并没有走太远:

let ndx = crossfilter(data);
let d = ndx.dimension(d => d.type);
let reduceAdd = (p, …
Run Code Online (Sandbox Code Playgroud)

javascript crossfilter

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

初始化后更新jqTree?

我是jqTree的新手,我想在ajax调用后重新加载树.我有这样的事情:

$("select").change(function(){
    var url = 'lab.json';

    if ($(this).val() === 'RAD') {
        url = 'rad.json';
    }

    $.get(
        url, 
        function(jsonData) {
            $("#treedata").tree({data: jsonData});
        }, 
        "json"
    );
});
Run Code Online (Sandbox Code Playgroud)

第一个调用正在工作,但对于下一个调用,树不会使用新数据进行更新.

知道如何在初始化后更新树吗?

谢谢

编辑:

我找到了解决方案,但并不完美.如果有人有更好的解决方案让我知道:)

 $("#treebox").empty().append('<div id="treedata"></div>');
        $("#treedata").tree({
            data: jsonData
        });
Run Code Online (Sandbox Code Playgroud)

我必须使用$ .empty()通过jqTree删除生成的内容,然后每次我想用新数据更新树时初始化jqTree.

jquery jquery-ui jquery-plugins jqtree

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

在没有实例化类的情况下调用ruby方法

如果我在rails活动模型方法上调用一个方法,如下所示:

class Foo < ActiveRecord::Base

end

Foo.first
Run Code Online (Sandbox Code Playgroud)

我会回来第一个活跃的记录.我不必实例化该类.

但是,如果我创建自己的类并调用方法,我会得到一个例外:

class Person < ActiveRecord::Base
  def greeting
    'hello'
  end
end

Person.greeting 

#EXCEPTION: undefined method `greeting' for Person:Class
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题呢?

ruby ruby-on-rails class-method instance-methods

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

用红宝石链接的方法

我想构建一个具有类似rails活动记录的接口的API客户端.我希望消费者能够链接方法,并且在最后一个方法被链接之后,客户端基于所调用的方法请求URL.所以它的方法是链接一些懒惰的评估.我查看了Active Record,但这非常复杂(产生过程等).

这是我正在谈论的那种事情的玩具示例.你可以在调用'get'之前将任意数量的'bar'方法链接在一起,如下所示:

puts Foo.bar.bar.get # => 'bar,bar'
puts Foo.bar.bar.bar.get # => 'bar,bar,bar'
Run Code Online (Sandbox Code Playgroud)

我已经成功实现了这个,但我宁愿不需要调用'get'方法.所以我想要的是:

puts Foo.bar.bar # => 'bar,bar' 
Run Code Online (Sandbox Code Playgroud)

但我目前的实现是这样做的:

puts Foo.bar.bar #=> [:bar, :bar]
Run Code Online (Sandbox Code Playgroud)

我曾想过重写数组方法each,to_s但我相信有更好的解决方案.

我如何链接方法并知道哪个是最后一个,所以我可以返回类似get方法中返回的字符串?

这是我目前的实施:

#!/usr/bin/env ruby

class Bar
  def get(args)
    # does a request to an API and returns things but this will do for now.
    args.join(',') 
  end
end

class Foo < Array
  def self.bar
    @q = new
    @q << :bar
    @q
  end

  def bar
    self << :bar …
Run Code Online (Sandbox Code Playgroud)

ruby lazy-evaluation method-chaining

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

如何仅使用Ember中的路线对模型进行排序?

在过去,您可以使用ArrayControllers(在1.13.0中弃用),我们知道不会在ember中推荐使用不久的控制器.目前是否可以仅使用我的路线对模型进行排序?

/routes/orders.js

import Ember from 'ember';

export default Ember.Route.extend({
  model: function() { return this.store.findAll('order'); }
});
Run Code Online (Sandbox Code Playgroud)

我如何按"名称"排序作为示例,但仅使用路线?

请注意,此问题类似于如何在Ember.js中对模型进行排序? - 但它是通过任何方法,而我的问题是特定的只使用路线(如果可能).

ember.js

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

通过按钮将图形保存为图像

我在cytoscape.js教程中看到,有几种方法可以将图形表示为图像(png,jpg),但是有一种方法可以将图形表示为常规图形,并且如果用户希望他可以通过单击将其另存为图像按钮或类似选项?

没有找到简单的方法。

我使用python flask作为服务器端,并使用cytoscape js绘制图形。

javascript html5 cytoscape cytoscape.js

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

Git:有没有办法存储两个分支的差异结果?

我有我的主分支和一个功能分支,但功能分支包含太多提交(它是从较早的点分支出来的,然后合并和发散等)。

我想要将我的功能分支与主分支进行比较,然后无论发生什么变化,我只是将其隐藏起来。然后我可以创建一个新分支git stash pop,这将为我提供更清晰的分支日志历史记录。

是否有捷径可寻?

git

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

为什么Ruby on Rails弃用了scaffold方法

我正在学习Ruby on Rails,所以我相信我迟早会发现它.

为什么在Rails的第2版中不推荐使用scaffold方法?

ruby ruby-on-rails

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