2016-04-01 12 views
0

で選択されませんフィールド。私は 'include_blank'を追加して、クライアントを持たない新規ユーザーがサインアップするケースを処理しました。これが私が問題に遭遇した場所です。私は:include_blank => "Select Client"追加した後入力は、ユーザーが、彼らは私が私の<code>form</code>で<code>collection input field</code>で正常にやっている<code>client</code>にそれを関連付ける必要があり<code>invoice</code>を作成すると、コレクションの価値が 、私は<code>clients</code>と<code>invoices</code>でアプリを持って編集

は私の編集フォームではなく、今なぜ:include_blankは、編集フォームに表示される「クライアントを選択し、」デフォルト

私のフォーム入力

<%= f.input_field :client_id, :collection => current_user.clients.order(created_at: :desc), selected: params[:client_id], :label_method => :client_name, :value_method => :id, :include_blank => "Select Client", class: "form-control" %> 

を関連するクライアントを選択し停止し、どこclient_idが存在しますか?どのように関連するclient_idを表示するには?

マイフォーム

<%= simple_form_for [@client, @invoice] do |f| %> 
<div class="field"> 
<% if @invoice.errors.any? %> 
<ul> 
    <% @invoice.errors.full_messages.each do |message| %> 
    <li><%= message %></li> 
    <% end %> 
</ul> 
<% end %> 
    <...> 
<div class="row invoice-info"> 
    <div class="col-xs-2 invoice-col"> 
    Select Client 
    <%= f.input_field :client_id, :collection => current_user.clients.order(created_at: :desc), selected: params[:client_id], :label_method => :client_name, :value_method => :id, :include_blank => "Select Client", class: "form-control" %> 
    </div> 

    <div class="col-xs-2 invoice-col"> 
    <%= link_to 'New Client', new_client_path(@client), class: "btn btn-danger" %> 
    </div> 
</div> 
+0

この行の周りにはERBの詳細が表示されます。具体的には 'form_for'はどのように見えますか?しかし、これは 'params [:client_id]'と関係している可能性があります。このERBが処理されているときに、 'params'ハッシュがそのキーを持っていると確信していますか? –

+0

ええ、 ':include_blank =>" Select Client "を取り除いても、すべてが期待通りに機能します。正しいクライアントが '入力フィールド 'に表示されます – Aloalo

+0

':prompt => '' Include_blank'の代わりに "Select Client"を渡すと同じ結果が表示されますか? –

答えて

0

[OK]を私はselected: params[:client_id]を削除し、今ではnilを返していました:include_blank => "Select Client"

selected: params[:client_id]で期待通りに働いていると、フォームビルダをselected: params[:client_id]を除去した後に:client_idを解釈することができたようです。