1

私は承認がモデルであるアプリケーションを開発しています。provider はモデルのフィールドです。プロバイダーフィールドに attr_accessor を定義しました

attr_accessor :provider

必要ではありませんが、モデルのレコードを作成しようとしたときに、知らないうちに定義して問題に直面しました

Authorization.create(:user_id => user.id, :uid => hash['uid'], :provider =>
hash['provider'])

user_id には user.id の値が割り当てられています (user は関数内の変数です) が、プロバイダーには常に null が割り当てられています (hash['provider'] には値が含まれています。

attr_accessor を削除すると、すべてが正常に機能し、問題が解決しました。しかし、なぜ以前は機能しなかったのですか? 何が問題だったのか知りたいだけです。

4

1 に答える 1

4

おそらくattr_accessibleを定義するつもりだったと思います(プロバイダーがデータベースのフィールドであると仮定します)。

attr_accessor は、クラス (または Rails のコンテキストでは仮想属性) に (インスタンス変数、getter および setter を使用して) 属性を作成する ruby​​ メソッドです。モデルに作成したいのは、attr_accessible の目的です。

詳細な説明については、http://www.ruby-forum.com/topic/95220を参照してください。

于 2012-04-24T10:33:19.047 に答える