1

我正在开发一个应用程序,其中授权是一个模型。provider 是模型的一个字段。我已经为提供者字段定义了 attr_accessor

attr_accessor :provider

虽然它不需要,但在我试图为模型创建记录时,我在不知不觉中定义了它并遇到了问题

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

正在为 user_id 分配 user.id 的值(用户是我函数中的变量),但始终为提供者分配 null(哈希 ['provider'] 包含一个值。

当我删除 attr_accessor 时,一切正常,我的问题得到了解决。但为什么它以前不起作用?我只是想知道是什么问题?

4

1 回答 1

4

我认为您可能打算定义一个attr_accessible(假设提供者是您数据库中的一个字段。)

attr_accessor 是一种 ruby​​ 方法,用于在类(或在 rails 的上下文中,虚拟属性)上创建属性(具有实例变量、getter 和 setter)。您想在模型上创建一个,这就是 attr_accessible 的用途。

有关更详细的说明,请参阅http://www.ruby-forum.com/topic/95220 。

于 2012-04-24T10:33:19.047 回答