因此,對於那些得到這樣的消息的人來說,「爲什麼我會收到此錯誤?」的基本答案。問題在於某個地方你指定了一個方法的錯誤數量的參數,不管你認爲這是多麼模糊或者錯誤 - 在你的代碼中幾乎肯定是一個錯字。下面是我碰到的一個案例。「創建」動作中的「參數數量錯誤(1代表0)」
我有以下方法誤差的功能測試,他說,第一個「Quality.create!(...」語句的參數太多,這沒有任何意義,我在所有。
運行的Ruby 1.8的Rails 2.3.5
def reset_quality_lut
Quality.delete_all
Quality.create!(:value => 1, :name => "Scrap", :extended_name => " (only good for parts)" )
Quality.create!(:value => 2, :name => "Heavy use", :extended_name => " (needs work)" )
Quality.create!(:value => 3, :name => "Medium use", :extended_name => " (some functional damage)")
Quality.create!(:value => 4, :name => "Light use", :extended_name => " (cosmetic damage only)" )
Quality.create!(:value => 5, :name => "New", :extended_name => " (or like new)" )
Quality.create!(:value => 0, :name => "Any", :extended_name => "/all" )
end
什麼方法是應該做的是刪除,然後在該表中重新創建所有的值。
這裏請求ED堆跟蹤(請注意,我得到同樣的事情,如果我有取代「.create「新(....)保存」:
1) Error:
test_should_create_an_admin_user_on_app_setup(SetupControllerTest):
ArgumentError: wrong number of arguments (1 for 0)
app/controllers/setup_controller.rb:43:in `reset_quality_lut'
app/controllers/setup_controller.rb:23:in `create'
/test/functional/setup_controller_test.rb:78:in `test_should_create_an_admin_user'
在應用中,這是什麼控制器併爲讓您在初始設置後設置應用程序。所以......
www.myapp.com/setup/new
帶來您可以在您輸入的第一個管理員用戶名和密碼的頁面。成功時,只要數據庫中有1個管理員用戶,此操作就變得無法訪問。
編輯:如果我嘗試「Quality.new.save」,我得到一個零錯誤。似乎我的「新」方法返回零由於一些奇怪的原因。
FWIW,除非你明確地使用'.create!'出於驗證的原因,只需使用'.create'。 – mway 2010-10-07 21:23:38
您的方法的前四行可以用'Quality.delete_all'替換。更短,更快。 – 2010-10-07 23:53:04
請發佈堆棧跟蹤。 – jdl 2010-10-08 00:57:03