Я все еще довольно новичок в тестировании в Rails 3, и я использую RSpec и Remarkable. Я прочитал много сообщений и некоторых книг уже, но я все еще немного застрял в неопределенности, когда использовать имя ассоциации, когда его ID.
class Project < ActiveRecord::Base
has_many :tasks
end
class Task < ActiveRecord::Base
belongs_to :project
end
Из-за хорошей практики я хочу защитить свои атрибуты от массовых назначений:
class Task < ActiveRecord::Base
attr_accessible :project # Or is it :project_id??
belongs_to :project
end
Прежде всего, я хочу убедиться, что существует проект никогда без действительной задачи:
class Task < ActiveRecord::Base
validates :project, :presence => true # Which one is the...
validates :project_id, :presence => true # ...right way to go??
end
Я также хочу убедиться, что присвоенный идентификатор проекта или проекта всегда действителен:
class Task < ActiveRecord::Base
validates :project, :associated => true # Again, which one is...
validates :project_id, :associated => true # ...the right way to go?
end
... и мне нужна проверка: наличие, когда я использую: связанный
Большое спасибо за разъяснение, кажется, что после нескольких часов чтения и попытки проверить материал с помощью RSpec/Shoulda/Remarkable я больше не вижу лес из-за всех деревьев...