小编Mat*_*iby的帖子

失败的rspec测试应该通过

我从迈克尔哈特尔的书中得到了这个测试

describe "follower/following counts" do
  let(:user) { FactoryGirl.create(:user) }
  let(:other_user) { FactoryGirl.create(:user) }

  before do 
    sign_in(user)
    visit root_path
    user.follow!(other_user) 
  end
  it { should have_link('0 following', href: following_user_path(user)) }
  it { should have_link('1 follower', href: followers_user_path(user)) }
end
Run Code Online (Sandbox Code Playgroud)

问题是这总是失败

it { should have_link('1 follower', href: followers_user_path(user)) }
Run Code Online (Sandbox Code Playgroud)

但是当我改变它

it { should have_link('0 follower', href: followers_user_path(user)) }
Run Code Online (Sandbox Code Playgroud)

测试通过.这是我的型号代码:

User.rb

has_many :relationships, foreign_key: "follower_id", dependent: :destroy
has_many :reverse_relationships, foreign_key: "followed_id", class_name:  "Relationship", dependent: :destroy
has_many :followed_users, through: :relationships, source: :followed
has_many :followers, through: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails capybara rspec2

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

有没有办法使用ruby gem aws-s3从s3下载文件?

好的,所以我尝试了两种方法都失败了

使用aws-s3 gem的第一种方法

require 'aws/s3'
S3ID = "MYACCESS"
S3KEY = "MYKEY"
include AWS::S3
AWS::S3::Base.establish_connection!(
  :access_key_id     => S3ID,
  :secret_access_key => S3KEY
)

bucket = AWS::S3::Bucket.find("test_bucket")
 => #<AWS::S3::Bucket:0x007fea3e2898c8 @attributes={"xmlns"=>"http://s3.amazonaws.com/doc/2006-03-01/", "name"=>"test_bucket", "prefix"=>nil, "marker"=>nil, "max_keys"=>1000, "is_truncated"=>true}, @object_cache=[#<AWS::S3::S3Object:0x70322020960960 '/test_bucket/00000188110119_1000000731213/'>, #<AWS::S3::S3Object:0x70322020960660 '/test_bucket/00000188110119_1000000731213/10_08-52-08.mp3'>, #<AWS::S3::S3Object:0x703220209

bucket.size
 => 1000 

bucket.objects[0]
 => #<AWS::S3::S3Object:0x70322028046080 '/test_bucket/00000188110119_1000000731213/'> 
bucket.objects[1]
 => #<AWS::S3::S3Object:0x70322028046040 '/test_bucket/00000188110119_1000000731213/10_08-52-08.mp3'> 
bucket.objects[1].key
 => "00000188110119_1000000731213/10_08-52-08.mp3" 

File.open("/Users/matt/local_copy.mp3", "w") do |f|
  f.write(bucket.objects[1])
end
Run Code Online (Sandbox Code Playgroud)

UPDATE

bucket.objects[1]
 => #<AWS::S3::S3Object:0x70322028046040 '/test_bucket/00000188110119_1000000731213/10_08-52-08.mp3'> 
bucket.objects[1].read
 NoMethodError: undefined method `read' for #<AWS::S3::S3Object:0x70322028046040>
bucket.objects[1].class
 => AWS::S3::S3Object 
Run Code Online (Sandbox Code Playgroud)

你可以看到我想要做的是从s3桶中复制mp3并将其复制到本地计算机....任何关于如何做到这一点的想法

ruby rubygems ruby-on-rails amazon-s3

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

如果符合条件,则进行Rails验证

我有这个验证

 validates :contact_id, :presence => true, :uniqueness => {:message => 'has an account already.'}
Run Code Online (Sandbox Code Playgroud)

在application.rb模型中

一切都很好,但如果状态"无效",我只需要进行此验证

例如,在应用程序表中有一个被调用的字段state,如果有contact_id一个用户的应用程序且状态为"无效",则此验证不应生效,应让用户保存应用程序

validation ruby-on-rails ruby-on-rails-3

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

如何在rails 3中按两个条件进行分组并循环遍历它们

好的,我有一个销售模型

recent_sales = Sale.recent
 => [#<Sale id: 7788, contact_id: 9988, purchasing_contact_id: 876, event_id: 988, #<BigDecimal:7fdb4ac06fe8,'0.0',9(18)>, fulfilled_at: nil, skip_print: nil, convention_id: 6, refund_fee: #<BigDecimal:7fdb4ac06de0,'0.0',9(18)>, processing: false>, #<Sale id: 886166, , contact_id: 7775,

recent_sales.count
=> 32
Run Code Online (Sandbox Code Playgroud)

我知道我能做到这一点

grouped_sales = recent_sales.group_by(&:contact_id).map {|k,v| [k, v.length]}
=> [[9988, 10], [7775, 22]]
Run Code Online (Sandbox Code Playgroud)

但我真正需要的不仅仅是对contact_id进行分组,还要对event_id进行分组,因此最终结果如下所示

=> [[9988, 988, 5], [9988, 977, 5], [7775, 988, 2], [7775, 977, 20]]
Run Code Online (Sandbox Code Playgroud)

所以我有event_id,分组正确地将它们分开......任何关于如何做到这一点的想法

我试过了

 recent_sales.group('contact_id, event_id').map {|k,v| [k, k.event, v.length]}
Run Code Online (Sandbox Code Playgroud)

但没有去

ruby group-by ruby-on-rails ruby-on-rails-3

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

删除除一个以外的所有重复项

我们有一个表,business_usersuser_idbusiness_id我们有重复.如何编写一个删除所有重复项的查询?

mysql sql

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

JQuery slideup和slidingown不够流畅

我正在实现幻灯片下拉菜单,我正在使用此代码

$(document).ready(function(){
    $('.drop').click(function(){
        var $next = $(this).parent().next('li.drop_down');
        if($next.is(':visible')) {
            $next.slideUp();
        } else {
            $next.slideDown();
        }
    });
});
Run Code Online (Sandbox Code Playgroud)

但客户声称它不够顺畅.他想要扩展得非常顺畅,所以有没有办法让它更顺畅

jquery slidetoggle

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

有条不紊地在jQuery中显示一个元素

div如果页面上有元素,我想要显示.例如:

如果('#some_div')在页面上,我想做一个 ('#another_div').show();

实现这一目标的语法是什么?

jquery

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

下载文件并保存到PHP中的目录

所以我有一个mp3文件的URL,我需要将它保存到一个特定的目录.如何做到这一点的最佳方式,有人告诉我curl但是有一些php命令的副本文件会使这个过程更容易

php

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

为什么我的查询导致1064(42000)错误?

查询问题,对于我的生活,我无法弄清楚这个查询有什么问题

HAVING distance  ='10'
GROUP BY c.ancient,
   c.ant_name,
   p.upper,
   p.name,
Run Code Online (Sandbox Code Playgroud)

错误1064(42000):您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在第1行的'GROUP BY c.city_id,c.city_name,p.prop_ynow_id,p.Name,pr.PRE_Ident SELECT dis'附近使用正确的语法

mysql sql mysql-error-1064

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

我如何在php数组中传递一个空键

如果它没有像这样的键,我怎么去到数组内容

$products[0] 
Run Code Online (Sandbox Code Playgroud)

这会让我部分在那里,但如何我过去[]

( [0] => Array 
( [] => Array ( 
[0] => Array ( [product_name] => stuff i need to get to  ) 
Run Code Online (Sandbox Code Playgroud)

php multidimensional-array

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