小编Zeq*_*uez的帖子

我应该在测试时在Factory girl或spec文件中存根模型吗?

几乎每一个我遇到的spec文件最终都会写出如下内容:

  before :each do
    @cimg = Factory.build :cimg_valid
    @cimg.stub(:validate_img).and_return true
    @cimg.stub(:validate_img_url).and_return true
    @cimg.stub(:save_images).and_return true
    @cimg.stub(:process_image).and_return true
    @cimg.stub(:img).and_return true
  end
Run Code Online (Sandbox Code Playgroud)

我的意思是,我从Factory.build获得的模型是完全有效的.但是,如果我不存储那些东西它会保存文件系统中的东西,并验证我没有测试的东西......

我的意思是,我认为做这样的事情会更干净:

  before :each do
    @cimg = Factory.build :cimg_for_testing_tags
  end
Run Code Online (Sandbox Code Playgroud)

如果甚至可以在工厂内进行存根.

存根模型的正确方法是什么?

ruby unit-testing ruby-on-rails mocking stubbing

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

如何在I18n语言环境文件中指定模型之间的共享属性转换?

我尝试了以下方法:

es:
  activerecord:
    attributes:
      name: Nombre
Run Code Online (Sandbox Code Playgroud)

它没有用.

但以下工作:

es:
  activerecord:
    attributes:
      person:
        name: Nombre
Run Code Online (Sandbox Code Playgroud)

哪种方法可以跨模型定义默认属性?

我也在使用Formtastic和Active Admin.

activerecord locale ruby-on-rails internationalization models

15
推荐指数
2
解决办法
2809
查看次数

是否可以在不重新编译的情况下更改Passenger Ruby版本?

我尝试将默认ruby命令更改为1.9.2,但Passenger一直运行1.8.7

Passenger是用嵌入式Ruby编译的吗?

ruby deployment ruby-on-rails passenger

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

是否存在RESTful资源的客户端管理面板框架?

我过去曾使用过Rails,我使用ActiveAdmin来制作管理面板.我正在转向Node,我将使用Sails作为单页应用程序的框架,可能在客户端使用AngularJS,但仍然存在管理面板的问题.

鉴于Sails几乎为RESTful API访问设置了所有资源,我考虑使用基于客户端的管理面板.但我不知道这样的事情是否存在.如果不是,我想我会自己做,但我不想重新发明轮子.

rest administration node.js web sails.js

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

Array# - (减法运算符)如何比较元素是否相等?

当我调用Array#-它似乎没有调用我正在比较的字符串上的任何比较方法:

class String
  def <=>(v)
    puts "#{self} <=> #{v}"
    super(v)
  end

  def ==(v)
    puts "#{self} == #{v}"
    super(v)
  end

  def =~(v)
    puts "#{self} =~ #{v}"
    super(v)
  end

  def ===(v)
    puts "#{self} == #{v}"
    super(v)
  end

  def eql?(v)
    puts "#{self}.eql? #{v}"
    super(v)
  end

  def equal?(v)
    puts "#{self}.equal? #{v}"
    super(v)
  end

  def hash()
    puts "#{self}.hash"
    super
  end
end

p %w{one two three} - %w{two}
Run Code Online (Sandbox Code Playgroud)

它只是返回:

["one", "three"]
Run Code Online (Sandbox Code Playgroud)

那么,Array#-做什么?

另外,我使用的是Ruby 1.9.2p290.在1.8.7中它似乎导致无限循环.

ruby arrays operator-overloading subtraction comparison-operators

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

如何在没有fieldset的情况下创建一个formtastic嵌套输入?

我有一个表User继承自一个名为的表Person

长话短说,而不是必须做以下事情:

f.inputs 'Something' do
  f.inputs for: :person do |f|
    f.input :name
    f.input :surname
  end
  f.input :account
end
Run Code Online (Sandbox Code Playgroud)

这会产生一个fieldset内部ol,这本身就是无效的,但这不是让我担心的问题.我想摆脱fieldset所有属性显示在同一级别.

f.inputs 'Something' do
  f.input :name, for: :person
  f.input :surname, for: :person
  f.input :account
end
Run Code Online (Sandbox Code Playgroud)

当然这是无效的,在输入中没有for:for.

我正在考虑使用委托,但后来我虽然accepts_nested_attributes_forPerson模型中也有很多,但它们会破坏.

Person表也​​被另一个模型继承.

有没有透明化的宝石,让我继承模型?

polymorphism inheritance nested ruby-on-rails formtastic

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

如何在Rails中使用acts_as_taggable_on声明标签别名?

acts_as_taggable_on实现工作得很好,但我还需要声明标签别名.

我发现了一个声称这样做的插件,acts_as_taggable_with_aliases,但是最后一次提交是在2009年并且不在gem存储库中,所以我认为该项目现在已经死了.

有什么办法可以实现这个目标吗?

ruby tags ruby-on-rails acts-as-taggable-on

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

Ruby中方法的静态局部变量?

我有这个:

def valid_attributes
  { :email => "some_#{rand(9999)}@thing.com" }
end
Run Code Online (Sandbox Code Playgroud)

对于Rspec测试吧?但我想做这样的事情:

def valid_attributes
  static user_id = 0
  user_id += 1
  { :email => "some_#{user_id}@thing.com" }
end
Run Code Online (Sandbox Code Playgroud)

我不想user_id从任何地方访问,但这种方法,这可能与Ruby有关吗?

ruby variables methods static local

6
推荐指数
3
解决办法
4844
查看次数

在Angular中两次声明相同指令的目的是什么?

在重写ng-include我的需求的同时,我发现了direcive ngIncludeFillContentDirective,它被声明为ng-include:

.directive({ngInclude: ngIncludeDirective}).directive({ngInclude: ngIncludeFillContentDirective})

您可以在此处查看ngInclude源.你可以在这里看到如上所述调用的指令方法.

那么,它对实际指令的影响到底是什么?它只是作为另一个指令应用吗?它有特殊意义吗?

angularjs angularjs-directive

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

当处理文件before_save时出错,验证后,我应该引发异常还是返回false并添加错误?

例如,如果我有一个传递所有验证的图像,例如尺寸,尺寸,类型等,但是当我必须处理它时,由于某种未知的原因,ImageMagick无论如何都会抛出一个错误...我应该如何处理?

ruby error-handling exception-handling ruby-on-rails conventions

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

如何在Rails中输出到网站而不是控制台进行调试?

好吧,标题几乎解释了一切.我想用类似的东西

p something
Run Code Online (Sandbox Code Playgroud)

并且能够在网站上看到输出,只是为了调试.

ruby debugging ruby-on-rails

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

获取系统调用的错误输出?

当我执行以下操作时:

output = `identify some_file`
output == "Output of identify"
Run Code Online (Sandbox Code Playgroud)

但当...

output = `identify non_existant_file`
output != "Error output of identify"
Run Code Online (Sandbox Code Playgroud)

如何获得系统调用的错误输出?

ruby bash system

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

`{} + 1 === 1`和`({})+ 1 ==="[object Object] 1"`.那里发生了什么?

试试这个,打开控制台:

{} + 1
> 1
Run Code Online (Sandbox Code Playgroud)

({}) + 1
> "[object Object]1"`
Run Code Online (Sandbox Code Playgroud)

那鸭子在那里发生了什么?添加的额外括号是什么?

javascript

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