当表有类型列时如何获得标题

时间:2012-07-14 08:16:30

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

我们有一个简单的站点模型,其中包含单表继承sites(id, type, title, address),其中type可以是“Home”或“office”。当我们使用Rails 2.3.5时,我们可以Site.last.title,它会给出标题。但是,在Rails 3.2.6上,当我们执行Site.last.title时,它会将值作为类型列给出。

是否可以获取标题的值而不是类型?

1 个答案:

答案 0 :(得分:0)

如果您尝试获取表格的最新值,最好通过created_at列找到它。默认情况下,使用Site.last,Rails将按主键(ID)进行搜索,这在大多数情况下都很好。但是,如果由于任何原因需要更改现有记录上的ID,则SQL将不会返回您期望的内容。

因此,最好做一些事情:

Site.order("created_at").last.title

关于您遇到的问题,我认为问题与type有关,而与title无关。无论如何,我建议你在你的控制器中设置最新的site,然后在你的视图中调用它。

#controller
@site=Site.order("created_at").last

#view
@site.title

我希望它有所帮助...