【问题标题】:how to get title when table has type column当表格具有类型列时如何获取标题
【发布时间】:2012-07-14 08:16:30
【问题描述】:
我们有一个简单的站点模型,具有单表继承sites(id, type, title, address),其中类型可以是“家庭”或“办公室”。当我们在 Rails 2.3.5 上时,我们可以使用Site.last.title,它会给出标题。但是,在 Rails 3.2.6 上,当我们执行 Site.last.title 时,它会向我们提供值作为类型列。
是否可以获取标题的值而不是类型?
【问题讨论】:
标签:
ruby-on-rails
ruby-on-rails-3
activerecord
ruby-on-rails-3.2
【解决方案1】:
如果你想获取一个表的最新值,最好通过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
希望对你有帮助……