Не удалось присоединиться к тесту создания модели, потому что отсутствуют связанные модели, не знаете почему? - PullRequest
1 голос
/ 18 октября 2011

Вот тест, который не проходит:

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

Ответы [ 2 ]

0 голосов
/ 18 октября 2011

Добавьте :user_id и :project_id к attr_accesible. Как вы сделали это для :owner_type. Так должно выглядеть

attr_accessible :owner_type, :user_id, :project_id

Это должно решить проблему.

0 голосов
/ 18 октября 2011

Возможно ли, что проблема вызвана тем, что вы передаете строки вместо целых чисел для значений user_id и project_id?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...