

現在、gemのcocoonを使って、動的にフォームを追加し、保存するようにしたいと考えています。  
しかし、viewでは、フォームを追加したり削除したりなど、うまく動かすことができるのですが、送信してもうまくパラメーターが渡せていない状態となっています。  
どのようにしたら、うまくパラメータを渡すことができ、登録できるのでしょうか？  
テーブルは、多対多になっており、中間テーブルを置いています。  
下記に現在のコードを記します。よろしくお願い致します。

controller

[code]

      def new
        @newarea = Area.new
        @newarea.area_cities.build
      end
    
      def create
        @newarea = Area.new(areacity_params)
    
        respond_to do |format|
          if @newarea.save
            format.html { redirect_to [:admin, @newarea]
            format.json { render :show, status: :created, location: [:admin, @newarea] }
          else
            format.html { render :new }
            format.json { render json: @newarea.errors, status: :unprocessable_entity }
          end
        end
      end
    
      private
      def areacity_params
        params.require(:area).permit(:code, :prefecture_id, area_cities_attributes: [:id, :city_id, :area_id, :_destroy])
      end
    
[/code]

view

[code]

     = form_for @newarea, :url => {:action => 'create'} do |f|
          = f.hidden_field :prefecture_id, :value => @prefecture.id
          = f.hidden_field :code, :value => @area.code + 1
          = f.fields_for :area_cities do |builder|
            = render 'area_city_fields', f: builder
          = link_to_add_association "エリアを追加する", f, :area_cities
          %br
          = link_to "キャンセル", admin_locations_path, class: "btn btn-default"
          = f.submit "保存", class: "btn btn-primary"
    
[/code]

model

city.rb

[code]

    class City < ApplicationRecord
      belongs_to :prefecture
      has_many :requests  has_many :area_cities, dependent: :destroy
      has_many :cities, through: :area_cities
    end
    
[/code]

area.rb

[code]

    class Area < ApplicationRecord
      belongs_to :prefecture
      has_many :area_cities, dependent: :destroy
      has_many :cities, through: :area_cities
      accepts_nested_attributes_for :area_cities, allow_destroy: true
    end
    
[/code]

area_city.rb

[code]

    class AreaCity < ApplicationRecord
      belongs_to :area
      belongs_to :city
    
      validates :area_id, :city_id, :presence => true
    end
    
[/code]


CC BY-SA 3.0
2016-09-20T04:38:53.427
28995
2016-09-20T04:38:53.427
13491
question
ruby-on-rails rubygems
gem cocoonを使った多対多のパラメータ送信ができない