User.new
を使用して新しいオブジェクトを作成しようとすると、テストを実行するときにエラーが発生します。代わりに私がUser.new({})
を使用する場合、正常に動作します。ActiveModel ::パラメータなしのクラスを初期化するときのモデルエラー
渡されないとparamsは空にデフォルト設定されていませんか?
$ rails -v
Rails 5.0.0.1
user.rb
class User
include ActiveModel::Model
attr_accessor :name, :email, :country
end
user_test.rb
require 'test_helper'
class User < ActiveSupport::TestCase
test "should create an empty user when initialized with no params" do
user = User.new
assert_not_nil(user, 'user cannot be empty')
end
end
試験結果
Error:
User#test_should_create_an_empty_user_when_initialized_with_no_parameters:
ArgumentError: wrong number of arguments (given 0, expected 1)
test/models/user_test.rb:7:in `new'
test/models/user_test.rb:7:in `block in <class:User>'
レールコンソールでUser.newを実行するとどうなりますか? user.rbにinitializeメソッドがありますか? – margo
'test'の' User'はユーザー* test *ではなく、ユーザー*モデル*でしょうか? –
時々、明白な点を指摘する人が必要です。@DaveNewton – pameck