Вот тест, который не проходит:
before(:each) do
@attr = {
:user_id => "1",
:project_id => "1",
:owner_type => "client"
}
end
it "should create a new instance given valid attributes" do
Ownership.create!(@attr)
end
Вот ошибка:
Failures:
1) Ownership should create a new instance given valid attributes
Failure/Error: Ownership.create!(@attr)
ActiveRecord::RecordInvalid:
Validation failed: User can't be blank, Project can't be blank
# ./spec/models/ownership_spec.rb:14:in `block (2 levels) in <top (required)>'
У меня нет подтверждения для пользователя или проекта, чтобы он не был пустым. Вот моя модель владения:
class Ownership < ActiveRecord::Base
attr_accessible :owner_type
belongs_to :project
belongs_to :user
validates :user_id, :presence => true
validates :project_id, :presence => true
validates :owner_type, :presence => true
end
Я что-то упустил? Что я сделал не так? Кроме того, права собственности не создаются в реальном приложении ... это то, что я использую, но не работает:
current_user.ownerships.create(:owner_type => 'designer', :project => @project)
вот моя пользовательская модель:
class User < ActiveRecord::Base
attr_accessible :name, :email, :admin, :projects
has_many :ownerships
has_many :projects, :through => :ownerships
accepts_nested_attributes_for :projects