1

私は2つのモデルを持っています:

ルートとアクティビティ

次のような移行を通じて、それらの間に多対多の関係があります。

class ActivitiesRoutes < ActiveRecord::Migration
    def up
        create_table :activities_routes, :id => false do |t|
            t.integer :route_id
            t.integer :activity_id
        end
    end
end

休憩サービスでは、ルートのデータを取得し、複数のアクティビティを取得します。モデルは次のようになります。

class Route < ActiveRecord::Base
  attr_accessible :activities_attributes
  has_and_belongs_to_many :activities
  accepts_nested_attributes_for :activities
end

と:

class Activity < ActiveRecord::Base
  attr_accessible :activitytext, :iconid
  has_and_belongs_to_many :routes
end

私のアプリコントローラーでは、次のようなものを作りたいです:

ruta=Route.create({
    #other data for the model
})
ruta.activities_attributes = @activitiesarray #Array made with the Activities received

しかし、私はエラーが発生します:

undefined method `activities_attributes' for #<Route:0x2bccf08>

私がそれを残した場合:

ruta.activities_attributes << @activitiesarray

私は得る:

undefined method `with_indifferent_access' for #<Activity:0x6af7400>

誰も私がそれを可能にすることができるか知っていますか? ありがとうございました :)

4

1 に答える 1

1

あなたはこれを行うことはできません

ruta.activities_attributes << @activitiesarray

accepts_nested_attributes_forメソッドのみを提供するため*_attributes=、次のように動作するはずです

ruta.activities_attributes = @activitiesarray
于 2013-02-28T23:50:59.470 に答える