我遇到以下問題:我有很多表,其中一些是嵌套的,另一些是沒有的。我在一些地方劃分了我的應用程序,我認爲這是正確的方法。一個區域應該同時操作一些表格,以同樣的動作,就像我說的:有些模型不是嵌套其他模型。 Rails世界中的最佳解決方案是什麼? 我應該閱讀什麼才能明白這一點?RoR - 學習資源
我試圖用
accepts_nested_attributes_for
我試圖建立的對象以相同的形式fields_for使用。但這將是一個複雜的形式,因爲一些對象包含外鍵,但不幸的是我無法獲得超過2個對象的正確構建。
我會繼續嘗試。
謝謝!
---- -----編輯
Class Country < ActiveRecord::Base
has_many :states
attr_accessible :nome
# i tried # accepts_nested_attributes_for :state
end
Class State < ActiveRecord::Base
belongs_to :country
has_many :cities
attr_accessible :nome, :country_id
# i tried # accepts_nested_attributes_for :city
# i tried # accepts_nested_attributes_for :country # too
end
的模型繼續,直到我們得到ADRESS型號:
Class Adress < ActiveRecord::Base
has_many :bairros_logradouros # we name streets, avenues, parks as logradouros
# here in Brasil, the others models are translated
# to EN here
has_many :logradouros, :trough => :bairros_logradouros # many-to-many
attr_accessible :number, :complement, :other, :another
# i tried # accepts_nested_attributes_for :logradouro
end
的設置:國家 - >狀態 - >城市 - >區(bairro,here) - >:Logradouro < - >地址。 我試圖在兩個方向上構建鏈,但我只得到2個對象,第三個構造方法帶來了一個零問題。
這些表格是關於地址,我應該操縱用戶模型tha has_one人,最後有一個地址,我想指出地址:在地址:addres_id人。
所有這些都必須在自定義數據控制器中操作,所有CRUD都在這裏。
我不能構建整個鏈條:
@addres = @addres.new
@other = @addres.logradouros.build
@another = @other.build_district
@even_more = @another.build_city
....
我學會了用objects.build和build_object,但我無法建立超過2個嵌套對象。
我是新手。
再次感謝!
你能發表一些代碼嗎?請包括您的模型/協會以及相關的控制器和視圖代碼。 – PinnyM 2013-02-22 16:40:27
好吧,我現在在另一臺電腦上,但我會編輯這個問題並添加更多示例。 – josias 2013-02-22 16:47:19
編輯 - 上面有一些例子。 – josias 2013-02-22 18:31:57