2016-04-26 15 views
-1

と、クエリのSQLを解く:は私が作成したときに歴史がそれを行うことを必要とするレール

あなたはこれが私のnew.html.erb

ある

enter image description here

怒鳴るの画像の中に見えるどのよう

Table historic 
id authorization_origin_id 
1 2 
2 3 

<%= simple_form_for(@refinancing) do |f| %> 
    <div class="form-inputs"> 
    <%= f.hidden_field :employee_id, value: @employee.first.id %> 
    <%= f.input :contract_number %> 
    </div> 

    <h3>Reserved value</h3> 
    <table class="table table-condensed table-bordered table-striped"> 
    <thead> 
     <th>Authorization id</th> 
     <th>Contract number</th> 
    </thead> 
    <% @authorizations.each do |authorization| %> 
     <tbody> 
     <tr> 
      <td><%= authorization.id %></td> 
      <td><%= authorization.contract_number %></td> 
     </tr> 
     </tbody> 
    <% end %> 
    </table> 

    <div class="form-actions"> 
    <%= f.button :submit, "To Reserve" %> 
    </div> 
<% end %> 

これは私のコントローラです:

def new 
    if params[:authorization].present? 
     @selected_ids = params[:authorization][:contract_number] 
     @authorizations = Authorization.where("contract_number in (?)", @selected_ids) 
     auth_params = params[:authorization] 
     auth_params[:contract_number].zip(auth_params[:value_solve].reject(&:blank?)).each do |contract_number, value_solve| 
      Authorization.where(contract_number: contract_number).update_all(value_solve: value_solve, situation: 2) 
     end 

     @authorizations.ids.each do |auth_id| 
     @historic_refinancing = HistoricRefinancing.create 
     @historic_refinancing = HistoricRefinancing.where(authorization_origin_id: auth_id).update_all(authorization_origin_id: auth_id) 
     end 

    end 

    @employee = Employee.search_cpf(params[:search_employee_by_cpf]) 
    @refinancing = Refinancing.new 

    end 

今のところ、ですが、このエラーが表示されます:

enter image description here

、私はこれをnullに取得する方法してくださいましたauthorization_origin_id?

答えて

1

コントローラでは、パラメータなしでHistoricRefinancingを作成しています。

HistoricRefinancing.createは、null authorization_origin_id、refinancing_id、およびauthorization_new_idでエントリを作成します。

以下のコードは何も実行しません。HistoricRefinancingauthorization_origin_id == auth_idとして検索し、そのフィールドを同じに更新しようとします。

@historic_refinancing = HistoricRefinancing.where(authorization_origin_id: auth_id).update_all(authorization_origin_id: auth_id)

それはあなたが、コントローラの一部でやりたい正確に何明確ではないのですが、私はあなたがHistoricRefinancing.create(authorization_origin_id: auth_id)

まで両方のラインを凝縮したい疑います
関連する問題