不知何故,我无法弄清楚为什么我的请求规范由于错误而失败:
参数数量错误(0 代表 1)
当我在 show 方法中使用 find_by_id 时。
这是我的表演方法
def show
@message = Message.find_by_id(params[:id])
# rest of code
end
这是我的要求规格
require 'spec_helper'
describe "message pages" do
subject { page }
before do
@message = FactoryGirl.create(:message)
end
it "should show message page properly" do
visit message_path(@message.id)
page.should have_content(@message.content) # this fails as message path ends up with wrong number of arguments error
end
end
如果我将 find_by_id() 更改为 find() 则一切正常。我需要 find_by_id 因为我不想引发 404 错误,而是想检查是否为 nil 然后将用户引导到适当的页面。