#ruby-on-rails
#ruby-on-rails
Вопрос:
Для модели, определенной с помощью
belongs_to :municipal
validates :name, presence: true
has_one :gdstore, dependent: :destroy
в консоли
Neighbourhood.new(name: 'red distrikt').valid?
=> false
Neighbourhood.new(municipal_id: 3272, name: 'red distrikt').valid?
=> true
но запуск этого теста
test "valid if name and municipal id defined" do
neighbourhood = Neighbourhood.new(municipal_id: 3272, name: 'red distrikt')
assert neighbourhood.valid?
end
ВОЗВРАТ
Failure:
NeighbourhoodTest#test_valid_if_name_and_municipal_id_defined [/Volumes/SJT/r/gd /test/models/neighbourhood_test.rb:20]:
Expected false to be truthy.
Схема БД подтверждает:
create_table "neighbourhoods", force: :cascade do |t|
t.bigint "municipal_id", null: false
итак, что здесь происходит? Примечание: обратное утверждение также генерирует ошибку. Я не ожидаю, что has-one создаст недействительность, поскольку у него может не быть gdstore…
Ответ №1:
Хорошо … не было приспособления для municipal
with id: 3272
, следовательно, ошибка тестирования.