[RUBY-ON-RAILS] 루비 온 레일즈. 어떻게이에서 액티브 레코드 .build 방법을 사용하십시오 관계에 속하는?
RUBY-ON-RAILS루비 온 레일즈. 어떻게이에서 액티브 레코드 .build 방법을 사용하십시오 관계에 속하는?
나는 레일에서 .build 방법 (내가 현재 2.0.2을 사용하고 있습니다)에있는 모든 문서를 찾을 수 없었습니다.
실험을 통해 당신이 중 기록이 저장되어있는 전에 has_many 관계에 레코드를 추가하는 빌드 방법을 사용할 수 있습니다 보인다.
예를 들면 :
class Dog < ActiveRecord::Base
has_many :tags
belongs_to :person
end
class Person < ActiveRecord::Base
has_many :dogs
end
# rails c
d = Dog.new
d.tags.build(:number => "123456")
d.save # => true
이것은 제대로 외래 키와 개와 태그를 모두 저장합니다. 이것은 belongs_to 관계에서 작동하지 않습니다.
d = Dog.new
d.person.build # => nil object on nil.build
나는 또한 시도
d = Dog.new
d.person = Person.new
d.save # => true
개에 외부 키 때문에 아직 저장되지 않았기 때문에이 저장되는 시간에, 새로운 사람이 ID를하지 않는다는 사실에이 경우에는 설정되어 있지 않습니다.
내 질문이 있습니다 :
감사합니다
해결법
-
==============================
1.그것은 문서화되는 경우 :
그것은 문서화되는 경우 :
에 has_many 협회에서 API 문서에서 "모듈 액티브 :: 협회 :: ClassMethods"
반대 방향으로 건물에 대한 대답은 약간 변경 구이다. 강아지와 예에서,
Class Dog has_many :tags belongs_to :person end Class Person has_many :dogs end d = Dog.new d.build_person(:attributes => "go", :here => "like normal")
또는
t = Tag.new t.build_dog(:name => "Rover", :breed => "Maltese")
당신은 또한 즉시 저장하도록 create_dog을 사용할 수 있습니다 (많은 해당 "만드는"방법처럼 컬렉션에 호출 할 수 있습니다)
어떻게 스마트 충분히입니다 레일? 그것은의 마법 (또는 더 정확하게, 그냥 모른다는 찾아 싶어요!)
-
==============================
2.
@article = user.articles.build(:title => "MainTitle") @article.save
from https://stackoverflow.com/questions/783584/ruby-on-rails-how-do-i-use-the-active-record-build-method-in-a-belongs-to-rel by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 다른 컨트롤러 내의 고안 양식 (0) | 2020.02.09 |
---|---|
[RUBY-ON-RAILS] 신선한 레일 프로젝트에서 SQLite는에서 PostgreSQL을로 변경 (0) | 2020.02.09 |
[RUBY-ON-RAILS] 하나의 응용 프로그램에 여러 도메인을 처리하기 위해 라우팅 난간 (0) | 2020.02.09 |
[RUBY-ON-RAILS] 레일과 루비 1.9와 잘못된 멀티 바이트 문자 (US-ASCII) (0) | 2020.02.09 |
[RUBY-ON-RAILS] 콘솔 안 함 레일 SQL 로깅 (0) | 2020.02.09 |