我有一个具有以下属性的模型WordpressBlogger
:(请注意这些列的特定顺序:screen_name是在生成表后添加的)
id, rss_feed_id, blog_url, year_founded, created_at, updated_at, screen_name, latest_entry
当我在控制台中执行blogger = WordpressBlogger.new(:screen_name => "test")
时,它似乎没有返回设置了screen_name的模型。
相反,我得到了这个:
=> #<WordpressBlogger id: nil, rss_feed_id: nil, blog_url: nil, year_founded: nil, created_at: nil, updated_at: nil, screen_name: nil, latest_entry: nil>
然而,当我在控制台中执行blogger = WordpressBlogger.new(:year_founded => 2011)
时,它会返回一个具有此属性集的模型。
=> #<WordpressBlogger id: nil, rss_feed_id: nil, blog_url: nil, year_founded: 2011, created_at: nil, updated_at: nil, screen_name: nil, latest_entry: nil>
这是一个奇怪的Rails错误,如果数据库中的列是AFTER Rails创建的属性,例如created_at
和updated_at
,那么该属性不会被设置?
更新:我忘了将它添加到attr_accessible。
答案 0 :(得分:1)
最有可能的是,WordpressBlogger
类中有attr_accessible的引用。您可能需要将year_founded添加到允许批量分配的attr_accessible元素列表中。
答案 1 :(得分:0)
实际上并没有创建模型。请注意,没有设置id
。要创建它,您必须
blogger = WordpressBlogger.new(:screen_name => "test")
blogger.save
或
blogger = WordpressBlogger.create(:screen_name => "test")
这是你的模特吗?
attr_accessor :screen_name, :year_founded
或者您可能需要exit
并再次运行rails c
答案 2 :(得分:0)
您最有可能在运行迁移时运行控制台。快速reload!
或重新启动控制台应该可以显示所有列。