Я использую rspec и пытаюсь проверить, есть ли в моей модели y много х.Я перепробовал все виды вещей, включая циклический просмотр массива методов, и не могу найти хороший метод в Интернете.Так что я должен использовать?
Без особого взлома вы можете использовать замечательный самоцвет: http://github.com/carlosbrando/remarkable
Взято из замечательных документов:
describe Post do it { should belong_to(:user) } it { should have_many(:comments) } it { should have_and_belong_to_many(:tags) } end
Вы можете поразмышлять о классе:
MyModel.reflect_on_association(:x).macro == :has_one
Вероятно, проще, если вы просто используете Следует, есть вспомогательные методы, поэтому он выглядит намного чище: it { should have_many(:x) }
it { should have_many(:x) }
вот решение, независимое от rspec, ключ должен использовать reflect_on_assocation
reflect_on_assocation
class MyModel < ActiveRecord::Base has_many :children belongs_to :owner end reflection_children = MyModel.reflect_on_association(:children) if !reflection_children.nil? if reflection_children.macro == :has_many # everything is alright else # it's not has_many but exists end else # it doesn't exist at all ! end reflection_owner = MyModel.reflect_on_association(:owner) if !reflection_owner.nil? if reflection_owner.macro == :belongs_to # everything is alright! else # it's not belongs_to but exists end else # it doesn't exist at all! end