오랫동안이 머리에 부딪 치고 있습니다. Rails 2.3.2에서 Ruby 1.9.1. 여기 3 개의 모델과 네임 스페이스를 가진 레일 형태
class Person
has_one :goat
end
class Goat
belongs_to :person
has_many :kids
end
class Goat::Kid
belongs_to :goat
end
스키마의 요약이다 :
이 관계를 가지고 세 개의 객체를 생성 한 양식을 사용하려고
Person
first_name
last_name
Goat
name
color
Goat::Kid
nickname
age
나는 새로운 인스턴스를 인스턴스화 내 #create
조치를하고 싶습니다 지정된 연관성을 가진 세 모델의 그러나 내 params 해시가 컨트롤러에 전달되는 것처럼 보일 때 (브라우저가 폭발 할 때 브라우저의 백 트레이스 로그를 기반으로 함) Goat::Kid
개체는 매개 변수를 수집하지 않습니다.
irb (irb 세션은 #save!
또는 다른 필수품이 아니라면 그렇게하기 위해 노력하고있는 표현입니다.이 모든 것을 수행하려고합니다. 브라우저/웹 양식을 통해.) 이제
a = Person.new :first_name => 'Leopold', :last_name => 'Bloom'
b = Goat.new :name => 'Billy', :color => 'white'
c = Goat::Kid.new :nickname => 'Jr.', :age => 2
a.goat.kids
>> []
, 나는 각 개체에 PARAMS를 전달하는 뷰를 얻는 방법을 알아낼 수 없습니다와 DB 이러한 PARAMS을 저장하기 위해 컨트롤러를 얻을 수 있습니다.
내 질문 : A) nested_attributes_for
을 사용하는 좋은 장소이며, 그렇다면 네임 스페이스로 어떻게 선언 할 수 있습니까? B)이 작업을 훨씬 더 간단하고 쉽게 이해할 수 있습니까?
세 모델에 매개 변수를 전달하는 것은 나에게 매우 어려웠으며 아무리 많은 문서를 읽었는지간에 머리를 감쌀 수는 없습니다 (#form_for
및 #fields_for
). 네임 스페이스는 이것을 더욱 복잡하게 만든다. 어떤 도움을 주셔서 감사합니다!
부록 : 나는
accepts_nested_attributes_for
이름 공간에서 모델의 기호 인수를 사용하는 적절한 방법은 무엇입니까 선언 끝날 경우?
accepts_nested_attributes_for :kids, :through => :goats
또는
accepts_nested_attributes_for :goats_kids, :through => :goats
또는
accepts_nested_attributes_for :goats::kids, :through => :goats
나는 네임 스페이스 모델은 자신의 기호 식별자로 변환하는 방법을 모르겠어요. 감사!
너무 명확하지 않은지 잘 모르겠습니다.
사람 이름 :
사람 성 :
염소 이름 :
염소 색상 : 여기에 내가보고 내 양식을하고 싶습니다 방법
염소 :: 아이를 닉네임 :
염소 :: 아이 나이 :
그래서,이 하나 개의 형태는 것 적절한 연관과 네임 스페이스 고려 사항을 가진 3 개의 새로운 모델을 생성하십시오. 예. –
염소가 있습니까? wtf? lol – JRL
예, 이번 Goatr 앱입니다. 아니요.이 모델은 무고한 사람을 보호하기 위해 가상의 것입니다. 이것은 네임 스페이스를 사용하여 생각할 수있는 유일한 예입니다. –