2012-03-12 147 views
0

創建新對象的簡單問題。我試圖創建一個新的對象一個非常基本的類無法爲Ruby on Rails模型

class Article < ActiveRecord::Base 
    attr_accessor :title, :content 

    validates :title, :presence => true 
    validates :content, :presence => true 
end 

然而,當我嘗試創建控制檯一個新的對象,標題和內容領域始終顯示爲無

1.9.2-head :021 > a = Article.new(title: "abcdefg", content: "hijklmnop") 
=> #<Article id: nil, title: nil, content: nil, created_at: nil, updated_at: nil> 

爲什麼我不能創建一個新的對象?

+0

嘗試用'Article.create!(標題:「abcdefg」,內容:「hijklmnop」)'。 '!'將顯示爲什麼創建該對象失敗 – prasvin 2012-03-12 05:31:33

回答

2

您是否試圖使用attr_accessible

+3

@Jazear通過使用'attr_accessor'而不是'attr_accessible',您正在覆蓋默認的rails setter/getter,因此您在構造器中設置的值是忽略。 – 2012-03-12 05:48:04

+0

正確,謝謝。我想現在我需要創建特定的setter方法,如果我想要更改這些對象的內容 – 2012-03-12 06:38:16

+0

或更好,請刪除對attr_accessor的調用並使用生成的setter和getter,除非您有其他理由。 – 2012-03-12 21:00:04