Ruby on rails RubyonRails:将列中的id作为别名?

Ruby on rails RubyonRails:将列中的id作为别名?,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,是否有方法更改模型中id列的名称 如果我有这样的东西: pg_search_scope :good_search, :against => [:first_name, :last_name, :id] 我想将:id改为::somethingelse,因此当我检查我的json值时,而不是id,我将在循环中引用somethingelse: <% @example.each do |e| %> <%= e.somethingelse %> #instead of e

是否有方法更改模型中
id
列的名称

如果我有这样的东西:

pg_search_scope :good_search, :against => [:first_name, :last_name, :id]
我想将
:id改为::somethingelse
,因此当我检查我的json值时,而不是
id
,我将在循环中引用
somethingelse

<% @example.each do |e| %>
  <%= e.somethingelse %> #instead of e.id
<% end %>

#而不是e.id

这可能吗?

试试
alias\u属性

class ModelClass < Activerecord::Base
  alias_attribute :somethingelse, :id
end
classmodelclass

如果我理解正确,您想
返回一些东西和
id

为什么不在@example.class模型中使用类似的内容:

def somethingelse
  id
end
或者,如果数据库中的列名称不同

set_primary_key :somethingelse #in you model

我试着这样做,并将我的
pg\u搜索范围更改为
:somethingelse
,而不是
:id
,但是我得到了一个错误:
pg::UndefinedColumn:error:column model.somethingelse不存在
rails文档清楚地表明它应该工作。生成的SQL查询是什么?它在命名范围之外使用时是否有效,如
模型。首先,somethingelse
?它确实有效,为什么当我试图将
:somethingelse
放入
pg\u搜索范围:good\u search,:country=>[:first\u name,:last\u name,:somethingelse]
时,出现了一个问题。还有别的方法吗?