Mam dwa modele Link i Feed z relacją wiele do wielu połączone przez model LinkFeed.
Chciałbym aby każdy Link należał do jednego lub więcej Feedów.
W modelu link dałem walidację: validates :feeds, length: {minimum: 1}
Dwa testy do tego:
[code=ruby] it “raises error when trying to create link with no associated Feed record” do
expect {Link.create!(url: “http://google.com”)}.to raise_error
end
it “doesn’t raise error when trying to create link with associated Feed record” do
@feed = Feed.create(name: “Test Feed”)
expect{@feed.links.create!(url: “http://google.com”)}.to_not raise_error
end[/code]
Pierwszy przechodzi, drugi nie:
Failure/Error: expect{@feed.links.create!(url: "http://google.com")}.to_not raise_error
expected no Exception, got #<ActiveRecord::RecordInvalid: Validation failed: Feeds is too short (minimum is 1 characters)> with backtrace:
# ./spec/models/link_spec.rb:19:in `block (3 levels) in <top (required)>'
# ./spec/models/link_spec.rb:19:in `block (2 levels) in <top (required)>'
# ./spec/models/link_spec.rb:19:in `block (2 levels) in <top (required)>'
Będę wdzięczny za podpowiedź jak takie coś się realizuje.