我正在尝试在 Rails 模型上使用 ActiveResource 实现基本的 CRUD 操作。文档说要创建一个子类,ActiveResource::Base
然后设置self.site
。
这很好用,直到我尝试更新已获取的现有记录。我看到的错误是一个' ',当我在我的 ActiveResource 对象上MassAssignmentSecurity::Error
调用方法时出现,因为and字段不可访问。'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
有没有更好的解决方案?