2012-07-12 142 views
1

我有一个带有输入字段和下拉框的表单,其中包含来自其他表的数据。 (连接) 但现在,当我提出这是件好事,但是当我想编辑的字段下拉字段为空,但文本字段不单击编辑后,Rails 3.2没有在表单中保存下拉选择

我的表单代码:

<%= form_for @contracten, :html => { :multipart => true } do |f| %> 
    <% if @contracten.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@contracten.errors.count, "error") %> prohibited this contracten from being saved:</h2> 

     <ul> 
     <% @contracten.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 
    <div id="forms"> 
    <div class="field"> 
    <%= f.label :naam %><br /> 
    <%= f.text_field :naam %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :omschrijving %><br /> 
    <%= f.text_area :omschrijving %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :organisatie %><br /> 
    <%= f.select :organisatieid, options_for_select(@organisaties.map{ |f| [f.naam, f.id] }), :include_blank => true %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :vestiging %><br /> 
    <%= f.select :vestigingid, options_for_select(@vestigingens.map{ |f| [f.naam, f.id] }), :include_blank => true %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :Beheerder %><br /> 
    <%= f.select :persoonid, options_for_select(@personen.map{ |f| [f.naam, f.id] }), :include_blank => true %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :contractsoort %><br /> 
    <%= f.select :contractsoortid, options_for_select(@contractsoorten.map{ |f| [f.naam, f.id] }), :include_blank => true %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :datumingang %><br /> 
    <%= f.datetime_select :datumingang %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :datumeinde %><br /> 
    <%= f.datetime_select :datumeinde %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :contractduur %><br /> 
    <%= f.number_field :contractduur, :placeholder => 'in jaren' %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :opzegtermijn %><br /> 
    <%= f.number_field :opzegtermijn, :placeholder => 'In Maanden' %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :betalingsperiode_eenheid_id %><br> 
    <%= f.select :betalingsperiodeeenheidid, options_for_select(@betalingsperiodeeenhedens.map{ |f| [f.omschrijving, f.id] }), :include_blank => true %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :betalingstermijn %><br /> 
    <%= f.number_field :betalingstermijn %> 
    </div> 
    <br> 
    <div class="field"> 
    <%= f.label :pdf %><br /> 
    <%= f.file_field :pdf %> 
    </div> 
    <br> 
    <div class="actions"> 
    <%= f.submit "Toevoegen", :class => 'button3' %> 
    </div> 
    </div> 
<% end %> 
<br> 

截图: form with dropdowns and textareas

我希望有人知道是什么问题。

+0

请包括表单的代码。此外,请确保表单域中的名称匹配列名... – gabrielhilal 2012-07-12 11:42:27

+0

editted我的问题与_form.html.erb对不起,我忘了:) – 2012-07-12 11:51:32

+0

你有organisatieid,organisatieid,persoonid,contractsoortid数据库中的同名吗? – 2012-07-12 11:59:46

回答

4

:selected => ...添加到您的options_for_select参数中。

E.g:

<%= f.select :contractsoortid, 
      options_from_collection_for_select(@contractsoorten, 'id', 'naam', 
               :selected => @contracten.contractsortid), 
      :include_blank => true %> 

的变化实际上是保存,但是当你呈现形式,必须指定实际选择的值。

+0

魔法。 :)无论如何,我更新使用'options_from_collectio_for_select',它比上一个更“轨道”。 – Matzi 2012-07-12 12:08:39

+0

嗯,不起作用我得到的错误错误数量的参数(1为3) – 2012-07-12 12:13:19

+0

您可能留下了一个右括号,因为没有函数被调用1参数。 – Matzi 2012-07-12 12:16:19

相关问题