2014-01-23 1 views
0

i have follow LINKhas_many: через некоммерческие ассоциации

но это не спасательные ассоциации.

My Model являются:

class Shift < ActiveRecord::Base 
     has_many :week_shifts, :dependent => :destroy 
     has_many :weeks, :through => :week_shifts, :dependent => :destroy  
     accepts_nested_attributes_for :weeks 
    end 

    class Week < ActiveRecord::Base 
     has_many :week_shifts, :dependent => :destroy 
     has_many :shifts, through: :week_shifts, :dependent => :destroy 
    end 

    class WeekShift < ActiveRecord::Base 
     belongs_to :week 
     belongs_to :shift 
    end 

и _form является:

<% @weeks = Week.find(:all) %> 
    <% @weeks.each do |week| %> 
    <div class="field"> 
    <%= check_box_tag 'week_ids[]', week.id, @shift.weeks.include?(week) %> 
    <%= week.day %> 
    </div> 
    <% end %> 
    <%= hidden_field_tag 'week_ids[]', '' %> 

выход это

Оказываемые сдвиги/edit.html.erb в макетах/приложений (109.3ms) Завершено 200 OK в 119ms (Просмотров: 44.4ms | ActiveRecord: 73.0ms) Начато PATCH "/ shifts/3 »для 127.8.96.129 в 2014-01-23 06:46:58 -0500 Обработка с помощью ShiftsController # обновление как HTML Параметры: {" utf8 "=>" ✓ ", " authenticity_token "=>" Ltd3Ln5YJcRf40wQiPeGC + rRVeeGTpU + X1pUGjxbN6M = ", " shift "=> {" cod "=>« CN »,« nome »=>« Centrale Notte »,« descr »=>« Operatore Centrale Notte »,« stato »=>« 1 », «inizio (4i)» => «00», «inizio (5i)» => «00», «штраф (4i)» => «08», «штраф (5i)» => «00»} "week_ids" => ["1", "2", "3", "4", ""], "commit" => "Update Shift", "id" => "3"}

ответ

0

Похоже, вам нужно подбирать входные данные формы для week_ids, чтобы они составляли часть параметров shift. На данный момент он является размещение так:

{ 
    "shift"=>{ 
    "cod"=>"CN", 
    "nome"=>"Centrale Notte", 
    "descr"=>"Operatore Centrale Notte", 
    "stato"=>"1", 
    "inizio(4i)"=>"00", 
    "inizio(5i)"=>"00", 
    "fine(4i)"=>"08", 
    "fine(5i)"=>"00" 
    }, 
    "week_ids"=>["1", "2", "3", "4", ""] 
} 

В то время как это должно быть, как:

{ 
    "shift"=>{ 
    "cod"=>"CN", 
    "nome"=>"Centrale Notte", 
    "descr"=>"Operatore Centrale Notte", 
    "stato"=>"1", 
    "inizio(4i)"=>"00", 
    "inizio(5i)"=>"00", 
    "fine(4i)"=>"08", 
    "fine(5i)"=>"00", 
    "week_ids"=>["1", "2", "3", "4", ""] 
    } 
} 

Так что ваша форма должна иметь вместо этого:

<%= check_box_tag 'shift[week_ids][]', week.id, @shift.weeks.include?(week) %>