나는 장치, 팀 모델, 플레이어 모델 및 강사 모델이있는 사용자 모델을 가지고 있습니다. 나는 사용자가 가입 할 때 관련 팀이 관련 트레이너 및 플레이어와 함께 만들어지기를 원합니다. 나는 아래로 모델을 설정 한 :많은 관련 모델 만들기 before_save
user.rb
has_one :team
has_one :trainer, :through => :team
has_many :players, :through => :team
accepts_nested_attributes_for :team, :allow_destroy => true
before_save :create_team
def create_team
@team = Team.new(params[:team])
@team.user = self
@team.save
end
team.rb
belongs_to :user
has_one :trainer
has_many :players
accepts_nested_attributes_for :trainer, :allow_destroy => true
accepts_nested_attributes_for :player, :allow_destroy => true
trainer.rb 및 player.rb
belongs_to :team
내가하지 않은 나중에 사용자가 게임에서 그들을 선택하기를 원하기 때문에 create_trainer와 create_player 함수를 추가했다. 그래서 그들은 사용자 생성 과정에서 비어 있어야합니다.
그러나 가입 절차는 다음과 같은 오류 제공 :
No association found for name `trainer'. Has it been defined yet?
을하고 라인을 참조 : team.rb.에서
accepts_nested_attributes_for :trainer, :allow_destroy => true
팀 모델에 정의 된 강사의 존재 유무가 없다면 강사 항목을 아직 정의하지 않은 것은 무엇입니까? 그래서 아마 잘못,
morale.default => (5..12).to_a.sample
하지만 더 오류를 준 : 내가 좋아하는 기본값으로 속성을 설정, 트레이너 모델에 몇 줄을 추가했습니다. 어떤 의견이라도 크게 고맙게 생각합니다. 특히 나는 멍청이이기 때문에 여기를 비꼬는 근거를 비판하는 것은 무엇이든합니다.
답변 해 주셔서 감사합니다. 나는 컴퓨터 사용자 일 뿐이므로 용어에 적응하기가 어렵다. 나는 [ActiveRecord Associations] (http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html)를 확인하고 단 하나의 연결 (일대일)에서 create_other (속성 = {})를 보았습니다. 이것은 create_team과 같은 함수입니까? 그렇다면 create_team이 빈 팀을 생성한다는 사실을 알려주는 라인이 없습니다. 실용적인 정보를 어디에서 얻을 수 있는지 말해 주시겠습니까? 아니면 모든 프로그래머가 알아야 할 사소한 일입니까? – barerd
팀 생성에 실패하면 사용자 생성이 성공하지 않습니까? 그 의존성을 달성하는 올바른 방법은 무엇입니까 (팀 생성 실패시 사용자 생성 실패)? – aciniglio