Rails3创建方法问题

时间:2010-11-27 02:55:02

标签: ruby-on-rails ruby-on-rails-3

ruby-1.9.2-p0 > Subscription
 => Subscription(id: integer, email: string, tuan: boolean, send: boolean, created_at: datetime, updated_at: datetime) 
ruby-1.9.2-p0 > Subscription.create("email"=>"dd")
ArgumentError: wrong number of arguments (2 for 0)
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/attribute_methods/read.rb:69:in `send'
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1548:in `block in attributes='
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1544:in `each'
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1544:in `attributes='
    from /home/mlzboy/.rvm/gems/ruby-1.9.2-p0/gems/activerecord-3.0.1/lib/active_record/base.rb:1411:in `initialize'

我使用了上面的代码。我想使用create方法将记录持久保存到db, 但它会引发错误。我是rails3的新手。我检查了我的语法,没有发现任何错误。我错过了什么吗?

2 个答案:

答案 0 :(得分:1)

我自己已经弄清楚了。在订阅模型中,我使用了send列。

Send可能是rails的关键字,因此它会引发错误。在我将其改为其他一些词之后,例如'订阅',然后它工作正常。

(当我使用名为“type”的列时,我已经解决了这个问题)

答案 1 :(得分:0)

您是否覆盖了订阅模型中的初始化?