assert_template завершается ошибкой после переключения на полиморфные ассоциации
Это, наверное, что-то глупое простое, но я просто не могу понять это. Вот моя ситуация: после добавления новой базы данных я понял, что было бы лучше изменить уже существующую, чтобы она теперь использовала полиморфные ассоциации. Конечно после того, как я изменил это, почти все остальное пошло к черту. Хотя мне удалось исправить все, кроме одной незначительной проблемы. Тест на интеграцию сейчас не проходит, и я просто не знаю, почему, так как сама страница все еще работает отлично...
def setup
@user=users(:michael)
@clip=clips(:Michi_clip_one)
log_in_as(@user)
end
test "successful edit" do
get edit_clip_path(@clip)
assert_template "clips/edit"
....
FAIL["test_successful_edit", ClipEditTest, 2.686249095015228]
test_successful_edit#ClipEditTest (2.69s)
expecting <"clips/edit"> but rendering with <[]>
test/integration/clip_edit_test.rb:13:in `block in <class:ClipEditTest>'
Поскольку я действительно не знаю, в чем заключается проблема, я просто добавлю несколько вещей, с которыми, я думаю, они могут быть связаны.
Michi_clip_one:
adress: "nfWlot6h_JM"
owner: michael
description: "MyText"
,
class Clip < ApplicationRecord
belongs_to :owner, polymorphic: true
default_scope -> { order(created_at: :desc) }
validates :adress, presence: true, uniqueness: {scope: :owner}
before_save { self.adress=adress.split("=").last }
validates :owner, presence: true
end
,
class ClipsController < ApplicationController
before_action :logged_in_user, only: [:new, :destroy, :edit, :update, :create]
before_action :correct_user, only: [:destroy, :edit, :update]
def edit
@clip=current_user.clips.find_by(id: params[:id])
end
Если вам понадобятся другие строки кода, чтобы разобраться в проблеме, я буду рад ее добавить.
1 ответ
Хорошо понял. При использовании полиморфных ассоциаций, светильники нужно немного изменить, добавив соответствующую модель.
Michi_clip_one:
adress: "nfWlot6h_JM"
owner: michael (User)
description: "MyText"