我正在开发一个Authorization是模型的应用程序。 provider是模型的一个领域。我已经为提供者字段定义了attr_accessor
attr_accessor :provider
虽然它不需要,但在不知不觉中我定义它并面临一个问题,当我试图为模型创建记录时
Authorization.create(:user_id => user.id, :uid => hash['uid'], :provider =>
hash['provider'])
user_id正在被赋予user.id的值(用户是我函数中的变量)但是始终为provider提供null(hash ['provider']包含一个值。
当我删除attr_accessor时,一切正常,我的问题就解决了。但为什么它以前不起作用?我很想知道这是什么问题?
答案 0 :(得分:4)
我认为你可能想要定义一个attr_accessible(假设提供者是你数据库中的一个字段。)
attr_accessor是一个ruby方法,用于在类(或rails的上下文,虚拟属性)上创建属性(带有实例变量,getter和setter)。您想在模型上创建一个,这就是attr_accessible的用途。
请参阅http://www.ruby-forum.com/topic/95220以获取更详细的说明。