我是 RSpec 的新手,我一直遇到的问题是了解哪些记录在/超出范围。请参阅下面的示例。我正在通过 FactoryGirl 创建一系列记录。例如,我创建了一个用户,然后在 before 块中我使用该用户登录。这似乎总是很好。但是每当我开始尝试使用以前创建的记录的子记录时,我似乎遇到了麻烦。例如与组。组需要一个用户和一个 group_type。每当我尝试对这些类型的记录做某事时,我都会遇到“Called id for nil”错误。我试过“puts group.name”,我可以看到该组正在创建,但由于某种原因,一旦“visit group_path(group)”行执行记录不再存在。我知道我' 我在这里缺少一些非常基本的东西。感谢任何帮助,因为这让我发疯了。
describe "activities page" do
let(:user) { FactoryGirl.create(:user) }
let!(:group_type) { FactoryGirl.create(:group_type) }
let!(:group) { FactoryGirl.create(:group, user: user, group_type: group_type) }
before do
sign_in user
visit group_path(group)
click_button "Check In"
end
错误:
1) Activity pages activities page
Failure/Error: visit group_path(group)
RuntimeError:
Called id for nil, which would mistakenly be 4 -- if you really wanted the id of nil, use object_id
添加群展方式:
def show
@group = Group.find(params[:id])
@members = @group.members.paginate(page: params[:page])
cookies[:group_id] = @group.id
# Set Pusher chat
@chat = Chat.find_by_group_id(@group.id)
@user = current_user
@messages = Message.find(:all, :conditions => ["chat_id = ?", @chat.id.to_s])
end