0

我有一个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> 

created_at这是一个奇怪的 Rails 错误,如果数据库中的列是在 Rails 创建的属性之后,例如和,则属性没有设置updated_at

更新:我忘了将它添加到 attr_accessible。

4

3 回答 3

1

最有可能的是,类中有对attr_accessible的引用WordpressBlogger。您可能需要将 year_founded 添加到允许批量分配的 attr_accessible 元素列表中。

于 2013-03-07T01:29:00.957 回答
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

于 2013-03-07T01:29:13.827 回答
0

您很可能在运行迁移时运行了控制台。快速reload!或重新启动控制台应使所有列可见。

于 2013-03-07T01:34:37.903 回答