2013-10-05 295 views
1

嗨即時通訊使用的Nested_forms寶石的應用程序,一切工作正常..以下IM文檔here ...嵌套形式

我的形式將數據保存到數據庫中,我可以創建我需要無限多的額外領域。

唯一的問題是,當我想填充列表例如編輯,然後我不能再填充列表與用戶以前選擇的所有值,只是第一個值在那裏,2nds選擇框應該出現,看起來是透明的。我離開的形象,因爲英語不是我的lenguageŸ大概吸描述它

enter image description here

編輯:我認爲這個問題是環路,因爲當你提交第一次它看起來像這樣..

enter image description here

保存後,再次執行表單進行編輯。這是你得到的。

enter image description here

下面是代碼在那裏。

<div id="nacionalidad"> 
<%= f.fields_for :citizens do |citizen_form| %> 

    <div> 
     <%= citizen_form.label :citizen, t('generales.citizen') %> 
     <%= citizen_form.select :country_id , Country.all.collect {|p| [ t("generales."+p.iso), p.id ] }.sort_by {|label,code| label}, { :include_blank => true } , { :class => 'pca33' } %> 
     <div id="delerr"><%= citizen_form.link_to_remove t('generales.delete') %></div> 
    </div> 

    <% end %> 

    <%= f.link_to_add t('generales.add'), :citizens %> 
    </div> 

和模型

class Citizen < ActiveRecord::Base 
    attr_accessible :country_id 

    belongs_to :player 
    belongs_to :country 
end 

回答

1

你可能要對這個錯誤的方式。在我看來,使用多選字段和has_many關係要容易得多。然後,一切都會神奇地起作用!

形式:

<%= select_tag :countries, options_from_collection_for_select(Country.all, 'id', 'name'), :multiple => true %> 

型號:

class Citizen < ActiveRecord::Base 
    attr_accessible :country_id 

    belongs_to :player 
    has_many :countries 
end 

,然後如果你願意,你可以使用另一個JavaScript庫,讓您的multiselects更加人性化:

+0

感謝非常非常多,你的想法的問題是,即時通訊在Rails的一個小白,我只需要「解決」這個問題上在軌道上工作的應用程序,它是一個可拓登記表,4個階段,有很多的代碼...問題只是使這個寶石稱爲嵌套表單正常工作..但我確定你的意見它必須做什麼,但我肯定會擰緊持有的應用程序,如果我試試這個 –