在Ruby中实例化类,属性没有正确显示

时间:2014-03-29 04:29:44

标签: ruby-on-rails ruby

我有一个课程如下:

class Player < ActiveRecord::Base
    attr_accessor :name, :rating, :team_name
end

所以我跑了&#39;捆绑了exec rails console&#39;然后

Player.create(:name => "Ben", :rating => 5, :team_name => "Brown")

然而,这就是我的回忆:

   (0.1ms)  begin transaction
  SQL (7.0ms)  INSERT INTO "players" ("created_at", "updated_at") VALUES (?, ?)  [["created_at", Sat, 29 Mar 2014 04:24:31 UTC +00:00], ["updated_at", Sat, 29 Mar 2014 04:24:31 UTC +00:00]]
   (0.9ms)  commit transaction
 => #<Player id: 1, name: nil, rating: nil, team_name: nil, created_at: "2014-03-29 04:24:31", updated_at: "2014-03-29 04:24:31">

为什么创建的对象没有我分配的属性?这让我觉得很奇怪......

关于这个的任何指导?

谢谢, Mariogs

1 个答案:

答案 0 :(得分:-1)

Player.create(:name => "Ben", :rating => 5, :team_name => "Brown")

在这里,您可以批量分配属性名称,评级和team_name 因此,您需要告诉Player模型可以批量分配上述属性。 要允许质量赋值,您必须将这些属性传递给attr_accessible方法。

attr_accessor用于创建getter和setter方法。 数据库属性的getter和setter方法是动态创建的,您不需要创建它。

所以改变

attr_accessor :name, :rating, :team_name 

attr_accessible :name, :rating, :team_name