1

Rails 3 と Datamapper を一緒に使用していますが、多対多の関係を設定している場合を除いて、すべて問題ありません。

Railsコントローラーを介してユーザーを更新しようとしている場合は、次を実行します。

@user.update(params[:user])

params 内には role_ids コレクションがあります。ただし、これを渡すと、次のメッセージが表示されます。

The attribute 'role_ids' is not accessible in User

モデルのユーザー側の関係は次のようになります。

has n, :roles, :through => Resource

ここで何が問題なのかわかりません - 誰か助けてくれますか?

4

1 に答える 1

0

これは、User モデルに「role_ids」フィールドがないことを意味します。これは、User モデルに「resource_id」がある可能性が最も高いためです。ユーザーの作成/変更内でロールの作成/変更を受け入れるフォームがある場合は、次のように User で宣言する必要があります。

class User
  accepts_nested_attributes_for :roles
  attr_accessible :role_attributes
于 2012-06-07T00:43:04.470 に答える