Rails モデルで ActiveResource を使用して基本的な CRUD 操作を実装しようとしています。ドキュメントには、のサブクラスを作成してからActiveResource::Base
設定するように記載されていself.site
ます。
これは、フェッチされた既存のレコードを更新しようとするまでうまく機能します。表示されるエラーは ' ' です。これは、およびフィールドにアクセスできないため、ActiveResource オブジェクトでメソッドMassAssignmentSecurity::Error
を呼び出したときに表示されます。'save()'
created_at
updated_at
モデルクラスでこれらのフィールドをマークすると問題なく動作することがわかりましattr_accessible
たが、それは非常に安全ではなく、かなり貧弱なソリューションのようです。
以下に、問題の例を示します。
rails new TestApp
cd TestApp
rails generate scaffold User first:string last:string
rake db:create
rake db:migrate
rails server
私が使用する別の端末タブで:
irb
require 'active_resource'
class User < ActiveResource::Base
self.site = 'http://localhost:3000'
end
u = User.new()
u.first = 'John'
u.last = 'Shine'
u.save()
#This saves ok
nu = User.find(1)
nu.first = 'Geoff'
nu.save()
#This never works
これに対するより良い解決策はありますか?