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

时间:2013-11-22 07:13:29

标签: 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, as: :somethingelse所以当我检查我的json值而不是id时,我会在循环中引用somethingelse

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

这可能吗?

2 个答案:

答案 0 :(得分:0)

尝试alias_attribute

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

rails documentation

答案 1 :(得分:0)

如果我理解正确,你想要somethingelse返回并id

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

def somethingelse
  id
end

或者,如果您已经拥有包含名称不同的列的数据库

set_primary_key :somethingelse #in you model