CCK*_*CCK 9 ruby rspec ruby-on-rails rspec2 rspec-rails
这应该是一个简单的,但却无法找出导致测试失败的原因.运行rspec时,我一直收到以下错误.但在评论"发送"方法后,一切正常.
1) Messages GET /messages works! (now write some real specs)
Failure/Error: get target_app_messages_path(@message.target_app.id)
ArgumentError:
wrong number of arguments (2 for 0)
# ./app/controllers/messages_controller.rb:37:in `send'
Run Code Online (Sandbox Code Playgroud)
的routes.rb
resources :target_apps do
resources :messages do
member do
post 'send'
end
end
end
Run Code Online (Sandbox Code Playgroud)
型号代码
class Message
include Mongoid::Document
belongs_to :target_app
end
Run Code Online (Sandbox Code Playgroud)
控制器代码
class MessagesController < ApplicationController
def index
...
end
def show
...
end
...
def send
...
end
end
Run Code Online (Sandbox Code Playgroud)
/spec/requests/message_spec.rb
describe "Messages" do
describe "GET /messages" do
let(:message) do
FactoryGirl.create(:message)
end
it "works! (now write some real specs)" do
# Run the generator again with the --webrat flag if you want to use webrat methods/matchers
get target_app_messages_path(message.target_app.id)
response.status.should be(200)
end
end
Run Code Online (Sandbox Code Playgroud)
Dav*_*son 22
Ruby中的每个对象都有一个send方法:
http://ruby-doc.org/core-1.9.3/Object.html
通过命名您的操作"发送",您导致名称冲突.尝试将该操作重命名为"sendmessage"或以不同的方式定义它.应该有一种方法可以将URL映射中的"发送"发送到名为"sendmessage"的操作.
| 归档时间: |
|
| 查看次数: |
6366 次 |
| 最近记录: |