小编bia*_*idp的帖子

如何在Rails中设置默认值?

我正在尝试找到在Rails中为对象设置默认值的最佳方法.

我能想到的最好的new方法是在控制器中设置方法的默认值.

如果可以接受或者有更好的方法,是否有人有任何意见?

ruby ruby-on-rails

104
推荐指数
8
解决办法
10万
查看次数

ruby是否有布尔值的数组求和方法?

Ruby允许你这样做

[5,5,5].sum
=> 15
Run Code Online (Sandbox Code Playgroud)

有没有什么可以在数组上做布尔算术

[true, true, true].sum
=> true
[true, false, true].sum
=> false
Run Code Online (Sandbox Code Playgroud)

ruby boolean-logic

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

如何存根活动记录关系以使用rspec测试where子句?

我有一个看起来像这样的课:

class Foo < ActiveRecrod::Base
  has_many :bars

  def nasty_bars_present?
    bars.where(bar_type: "Nasty").any?
  end

  validate :validate_nasty_bars
  def validate_nasty_bars
    if nasty_bars_present?
      errors.add(:base, :nasty_bars_present)
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

在测试#nasty_bars_present?我的方法就是写一个rspec测试来存根吧关联但允许自然执行的地方.就像是:

describe "#nasty_bars_present?" do
  context "with nasty bars" do
    before { foo.stub(:bars).and_return([mock(Bar, bar_type: "Nasty")]) }
    it "should return true" do
      expect(foo.nasty_bars_present?).to be_true
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

上面的测试给出了关于没有数组方法的错误.如何包装模拟以便在哪里执行适当的?

谢谢!

ruby unit-testing rspec ruby-on-rails

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

是否可以从活动记录父级的错误中访问子对象?

鉴于以下表达的关系:

class Parent < ActiveRecord::Base
  has_many :children, :dependent => :destroy

  accepts_nested_attributes_for :child
end

class Child < ActiveRecord::Base
  belongs_to :parent

  validates :name, :presence => true
end
Run Code Online (Sandbox Code Playgroud)

假设我们有一个包含多个子节点的父对象,其中一个或多个具有导致parent.valid的错误?返回false.

parent = Parent.new
parent.build_child(:name => "steve")
parent.build_child()
parent.valid?
Run Code Online (Sandbox Code Playgroud)

有没有办法在查看parent.errors对象时访问导致错误的子元素?

ruby activerecord ruby-on-rails

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

我可以使用jquery访问存储在html元素数据属性中的哈希吗?

我有几个html元素,我附加哈希就像这样:

<p class='message' data-dependencies={'#first':{'equal':'Yes'}}>
  Relevant Content
</p>
Run Code Online (Sandbox Code Playgroud)

以便

$(".message").first().data("dependencies")
Run Code Online (Sandbox Code Playgroud)

回报

{'#first':{'equal':'Yes'}}
Run Code Online (Sandbox Code Playgroud)

但正如一位好友刚刚向我指出的那样,这个值就是一个字符串.所以下面描述的过滤器很自然地用它很难.

过滤器的目标是能够获取具有指定键的元素,在本例中为"#first".

$el.children().find("*").filter(function(){
    var dependency_hash = $(this).data("dependencies");
    if(dependency_hash != undefined && "#first" in dependency_hash){
      return true
    }
});
Run Code Online (Sandbox Code Playgroud)

有没有办法访问通过数据对象传递的哈希值,还是有另一种方法可以构建数据,以便实现能够根据键选择元素的相同方法?

html javascript jquery

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

如何将origin/master移动到新分支?

我不知何故在过去的某个时刻设法在我的主分支中获得了一些实验性功能,这些功能已被推广到原点.我的本地主分支没有实验性功能,所以我要强制推出它.我不想失去实验性的变化,所以有没有办法在我强制将我的本地主人推送到原点之前我可以将origin/master(或复制它)移动到新的分支?

git

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