#7 楼 @TsingHan
@user
生成于你 stub 之前,所以你此时不成功。
before do
Club.any_instance.stub(:is_admin?).and_return(true)
@club = create(:public_community)
@member = @club.member
end
it "creates a conference" do
post "/api/v1/conferences", @conference_params, {"HTTP_API_KEYAPI_KEY" => @member.api_token}
expect(response.status).to eq(201)
end
应该就可以了
同推荐 Hacker News. SHOW NH 的 session 很不错
不知道你所谓的 ruby-china 里的 user 对象指的是什么?
@TsingHan
allow(@club).to receive(:is_admin?).and_return(true)
只是 stub 了一个名叫@club
的变量,它跟club = fetch_club
说的不是同一个,故而无用。
假定fetch_club
方法是Club.find
,即 club 是 Club 的一个 instance, 你可以这样 stub
Club.any_instance.stub(:is_admin?).and_return(true)
Hope these help.
有缘帮顶
好像不错,支持下
@Perry 可行。但是为什么要这么做呢?提交表单后的 action 确实是 create user,这样修改不符合 design pattern
额。。占什么位置 - -。。。
@Perry 看一下 rails 的官方 doc
Call render to create a full response to send back to the browser
Call redirect_to to send an HTTP redirect status code to the browser
redirect_to
会直接重新 call UsersConroller#new, 此时@user
就是一个新的 object, 它的 errors 是 nil
如果是 render, @user
还是原来的 object, 错误在 errors 里,所以可以显示
辛苦了,期待 keynotes
will_paginate
,它可能不是一个适合的 gemRSpec 2.x 中,it
会寻找subject
的值.
如
before { @user = User.create }
subject { @user }
it { should respond_to(:to_s) }
这里 it 就是指 @user
而且,如前两位所说,it
, its
, should
已经被 RSpec 3 取消了 (changelog - http://myronmars.to/n/dev-blog/2014/05/notable-changes-in-rspec-3)
@dgy1126 查看了一下will_pagnate
的代码 (https://github.com/mislav/will_paginate/blob/623e9c5390998a2aca283bca28009f7d479d5f0f/lib/will_paginate/array.rb#L29)
WillPaginate::Collection.create(page, per_page, total) do |pager|
pager.replace self[pager.offset, pager.per_page].to_a
end
因为当前 array 的 size 只有 10,但是你要把它 replace 从 index 40 - 50,所以返回 nil
irb(main):014:0> array, another_array = [1,2,3], [3,4,5]
=> [[1, 2, 3], [3, 4, 5]]
irb(main):015:0> array.replace another_array[40..50].to_a
=> []
之前说的由 api 处理,意思是在程序的 archtecture 层面上你目前的实现方式不是很好,IMO
同意 @small_fish__ 的说法。数据既然是 api 请求,那么应该是通过修改 api 请求的参数来获取分页数据
再看 will_paginate
, 在 github 上说
will_paginate is a pagination library that integrates with Ruby on Rails, Sinatra, Merb, DataMapper and Sequel
是直接对数据库进行 SQL 查询来实现分页
现在一般用sublime
. Multiple Selections, Split Editing etc 的功能挺实用的
支持。期待国外站的活动! :)
33
谢谢 @quakewang ! 期待有 Get started 建议教程~~