私のユーザー認証を処理するためにdeviseを使用し、ユーザーモデルでIveは各ユーザーhas_one:roleを指定しました。ユーザーレコードを更新するhas_one関係
私のすべてのユーザーの役割/権限を保持するために別のテーブルを使用していますが、私はどのように役割を更新するのだろうか?
EDIT - ここに私のユーザモデルがある
has_one :role, :dependent => :destroy
accepts_nested_attributes_for :role, :allow_destroy => true
attr_accessible :stuff.... :role
私のロールモデル
belongs_to :user
アイブ氏は、私のフォームにこれを追加しました:
<%= f.fields_for :role, Role.new do |r| %>
<li class="full_width">
<%= r.label "User type" %>
<%= r.select(:status, %w[member artist commercial],{:include_blank => false}) %>
</li>
<% end %>
をしかし、それはロール・レコードを保存したことがありません、私はそのユーザーモデルdidntがattr_accessibleを持っていないので、私は推測する:ロールので私はそれを設定し、今私が保存しようとすると私はアソシエートionTypeMismatchエラー
EDIT - accepts_attributes_forを追加しましたが、エラーは表示されませんが、役割レコードは保存されません。マスアサイン保護することはできません属性:コンソールが
WARNINGを示し、あなたが貼り付けられているコードスニペットからrole_attributes
この関係を決定する 'User'モデルには何がありますか?私の推測では、あなたは 'accepts_nested_attributes_for'コールが欠けているということです。 –
ああ、私はそれを忘れてしまった。それを追加しましたが、役割はdoesntはthoを保存しました – rugbert