我对在 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
我还想确保分配的项目或项目 ID 始终有效:
class Task < ActiveRecord::Base
validates :project, :associated => true # Again, which one is...
validates :project_id, :associated => true # ...the right way to go?
end
...当我使用 :related 时是否需要对 :presence 进行验证?
非常感谢您的澄清,似乎经过数小时的阅读和尝试使用 RSpec/Shoulda/Remarkable 测试东西后,由于所有的树木,我再也看不到森林了……